Migrate messages, conversations, conversation_view, background to TS
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
This commit is contained in:
parent
6e7930f7a9
commit
b5df9b4067
42 changed files with 11676 additions and 10516 deletions
500
ts/window.d.ts
vendored
500
ts/window.d.ts
vendored
|
@ -5,9 +5,8 @@ import * as Underscore from 'underscore';
|
|||
import { Ref } from 'react';
|
||||
import {
|
||||
ConversationModelCollectionType,
|
||||
ConversationModelType,
|
||||
MessageModelCollectionType,
|
||||
MessageModelType,
|
||||
MessageAttributesType,
|
||||
} from './model-types.d';
|
||||
import {
|
||||
LibSignalType,
|
||||
|
@ -19,7 +18,7 @@ import { WebAPIConnectType } from './textsecure/WebAPI';
|
|||
import { CallingClass } from './services/calling';
|
||||
import * as Crypto from './Crypto';
|
||||
import * as RemoteConfig from './RemoteConfig';
|
||||
import { LocalizerType } from './types/Util';
|
||||
import { LocalizerType, BodyRangesType } from './types/Util';
|
||||
import { CallHistoryDetailsType } from './types/Calling';
|
||||
import { ColorType } from './types/Colors';
|
||||
import { ConversationController } from './ConversationController';
|
||||
|
@ -27,16 +26,47 @@ import { ReduxActions } from './state/types';
|
|||
import { SendOptionsType } from './textsecure/SendMessage';
|
||||
import AccountManager from './textsecure/AccountManager';
|
||||
import Data from './sql/Client';
|
||||
import { UserMessage } from './types/Message';
|
||||
import PQueue from 'p-queue/dist';
|
||||
import { PhoneNumberFormat } from 'google-libphonenumber';
|
||||
import { MessageModel } from './models/messages';
|
||||
import { ConversationModel } from './models/conversations';
|
||||
import { combineNames } from './util';
|
||||
import { BatcherType } from './util/batcher';
|
||||
|
||||
export { Long } from 'long';
|
||||
|
||||
type TaskResultType = any;
|
||||
|
||||
type WhatIsThis = any;
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
_: typeof Underscore;
|
||||
$: typeof jQuery;
|
||||
|
||||
extension: any;
|
||||
moment: any;
|
||||
imageToBlurHash: any;
|
||||
autoOrientImage: any;
|
||||
dataURLToBlobSync: any;
|
||||
loadImage: any;
|
||||
isBehindProxy: any;
|
||||
|
||||
PQueue: typeof PQueue;
|
||||
PQueueType: PQueue;
|
||||
|
||||
WhatIsThis: WhatIsThis;
|
||||
|
||||
baseAttachmentsPath: string;
|
||||
baseStickersPath: string;
|
||||
baseTempPath: string;
|
||||
dcodeIO: DCodeIOType;
|
||||
enterKeyboardMode: () => void;
|
||||
enterMouseMode: () => void;
|
||||
getAccountManager: () => AccountManager | undefined;
|
||||
getAlwaysRelayCalls: () => Promise<boolean>;
|
||||
getBuiltInImages: () => Promise<Array<WhatIsThis>>;
|
||||
getCallRingtoneNotification: () => Promise<boolean>;
|
||||
getCallSystemNotification: () => Promise<boolean>;
|
||||
getConversations: () => ConversationModelCollectionType;
|
||||
|
@ -46,20 +76,33 @@ declare global {
|
|||
getGuid: () => string;
|
||||
getInboxCollection: () => ConversationModelCollectionType;
|
||||
getIncomingCallNotification: () => Promise<boolean>;
|
||||
getInteractionMode: () => string;
|
||||
getMediaCameraPermissions: () => Promise<boolean>;
|
||||
getMediaPermissions: () => Promise<boolean>;
|
||||
getServerPublicParams: () => string;
|
||||
getSocketStatus: () => number;
|
||||
getSyncRequest: () => WhatIsThis;
|
||||
getTitle: () => string;
|
||||
waitForEmptyEventQueue: () => Promise<void>;
|
||||
getVersion: () => string;
|
||||
showCallingPermissionsPopup: (forCamera: boolean) => Promise<void>;
|
||||
i18n: LocalizerType;
|
||||
isValidGuid: (maybeGuid: string) => boolean;
|
||||
isActive: () => boolean;
|
||||
isAfterVersion: (version: WhatIsThis, anotherVersion: string) => boolean;
|
||||
isBeforeVersion: (version: WhatIsThis, anotherVersion: string) => boolean;
|
||||
isValidGuid: (maybeGuid: string | null) => boolean;
|
||||
isValidE164: (maybeE164: unknown) => boolean;
|
||||
libphonenumber: {
|
||||
util: {
|
||||
getRegionCodeForNumber: (number: string) => string;
|
||||
parseNumber: (
|
||||
e164: string,
|
||||
regionCode: string
|
||||
) => typeof window.Signal.Types.PhoneNumber;
|
||||
};
|
||||
parse: (number: string) => string;
|
||||
getRegionCodeForNumber: (number: string) => string;
|
||||
format: (number: string, format: PhoneNumberFormat) => string;
|
||||
};
|
||||
libsignal: LibSignalType;
|
||||
log: {
|
||||
|
@ -67,28 +110,69 @@ declare global {
|
|||
warn: LoggerType;
|
||||
error: LoggerType;
|
||||
};
|
||||
nodeSetImmediate: typeof setImmediate;
|
||||
normalizeUuids: (obj: any, paths: Array<string>, context: string) => any;
|
||||
owsDesktopApp: WhatIsThis;
|
||||
platform: string;
|
||||
preloadedImages: Array<WhatIsThis>;
|
||||
reduxActions: ReduxActions;
|
||||
reduxStore: WhatIsThis;
|
||||
registerForActive: (handler: WhatIsThis) => void;
|
||||
resetActiveTimer: () => void;
|
||||
restart: () => void;
|
||||
setImmediate: typeof setImmediate;
|
||||
showWindow: () => void;
|
||||
showSettings: () => void;
|
||||
shutdown: () => void;
|
||||
setAutoHideMenuBar: (value: WhatIsThis) => void;
|
||||
setBadgeCount: (count: number) => void;
|
||||
setMenuBarVisibility: (value: WhatIsThis) => void;
|
||||
showKeyboardShortcuts: () => void;
|
||||
storage: {
|
||||
put: (key: string, value: any) => void;
|
||||
remove: (key: string) => Promise<void>;
|
||||
get: <T = any>(key: string) => T | undefined;
|
||||
addBlockedGroup: (group: string) => void;
|
||||
addBlockedNumber: (number: string) => void;
|
||||
addBlockedUuid: (uuid: string) => void;
|
||||
fetch: () => void;
|
||||
get: <T = any>(key: string, defaultValue?: T) => T | undefined;
|
||||
getItemsState: () => WhatIsThis;
|
||||
isBlocked: (number: string) => boolean;
|
||||
isGroupBlocked: (group: unknown) => boolean;
|
||||
isUuidBlocked: (uuid: string) => boolean;
|
||||
onready: WhatIsThis;
|
||||
put: (key: string, value: any) => Promise<void>;
|
||||
remove: (key: string) => Promise<void>;
|
||||
removeBlockedGroup: (group: string) => void;
|
||||
removeBlockedNumber: (number: string) => void;
|
||||
removeBlockedUuid: (uuid: string) => void;
|
||||
};
|
||||
systemTheme: WhatIsThis;
|
||||
textsecure: TextSecureType;
|
||||
unregisterForActive: (handler: WhatIsThis) => void;
|
||||
updateTrayIcon: (count: number) => void;
|
||||
|
||||
Backbone: typeof Backbone;
|
||||
Signal: {
|
||||
Backbone: any;
|
||||
AttachmentDownloads: {
|
||||
addJob: <T = unknown>(
|
||||
attachment: unknown,
|
||||
options: unknown
|
||||
) => Promise<T>;
|
||||
start: (options: WhatIsThis) => void;
|
||||
stop: () => void;
|
||||
};
|
||||
Crypto: typeof Crypto;
|
||||
Data: typeof Data;
|
||||
Groups: {
|
||||
maybeUpdateGroup: (options: unknown) => Promise<void>;
|
||||
waitThenMaybeUpdateGroup: (options: unknown) => Promise<void>;
|
||||
uploadGroupChange: (
|
||||
options: unknown
|
||||
) => Promise<{ toArrayBuffer: () => ArrayBuffer }>;
|
||||
buildDisappearingMessagesTimerChange: (
|
||||
options: unknown
|
||||
) => { version: number };
|
||||
};
|
||||
Metadata: {
|
||||
SecretSessionCipher: typeof SecretSessionCipherClass;
|
||||
createCertificateValidator: (
|
||||
|
@ -98,22 +182,301 @@ declare global {
|
|||
RemoteConfig: typeof RemoteConfig;
|
||||
Services: {
|
||||
calling: CallingClass;
|
||||
eraseAllStorageServiceState: () => Promise<void>;
|
||||
handleUnknownRecords: (param: WhatIsThis) => void;
|
||||
initializeGroupCredentialFetcher: () => void;
|
||||
initializeNetworkObserver: (network: WhatIsThis) => void;
|
||||
initializeUpdateListener: (
|
||||
updates: WhatIsThis,
|
||||
events: WhatIsThis
|
||||
) => void;
|
||||
runStorageServiceSyncJob: () => Promise<void>;
|
||||
storageServiceUploadJob: () => void;
|
||||
};
|
||||
Migrations: {
|
||||
readTempData: any;
|
||||
deleteAttachmentData: (path: string) => Promise<void>;
|
||||
doesAttachmentExist: () => unknown;
|
||||
writeNewAttachmentData: (data: ArrayBuffer) => Promise<string>;
|
||||
deleteExternalMessageFiles: (attributes: unknown) => Promise<void>;
|
||||
getAbsoluteAttachmentPath: (path: string) => string;
|
||||
loadAttachmentData: (attachment: WhatIsThis) => WhatIsThis;
|
||||
loadQuoteData: (quote: unknown) => WhatIsThis;
|
||||
loadPreviewData: (preview: unknown) => WhatIsThis;
|
||||
loadStickerData: (sticker: unknown) => WhatIsThis;
|
||||
readStickerData: (path: string) => Promise<ArrayBuffer>;
|
||||
upgradeMessageSchema: (attributes: unknown) => WhatIsThis;
|
||||
|
||||
copyIntoTempDirectory: any;
|
||||
deleteDraftFile: any;
|
||||
deleteTempFile: any;
|
||||
getAbsoluteDraftPath: any;
|
||||
getAbsoluteTempPath: any;
|
||||
openFileInFolder: any;
|
||||
readAttachmentData: any;
|
||||
readDraftData: any;
|
||||
saveAttachmentToDisk: any;
|
||||
writeNewDraftData: any;
|
||||
};
|
||||
Stickers: {
|
||||
getDataFromLink: any;
|
||||
copyStickerToAttachments: (
|
||||
packId: string,
|
||||
stickerId: number
|
||||
) => Promise<typeof window.Signal.Types.Sticker>;
|
||||
deletePackReference: (id: string, packId: string) => Promise<void>;
|
||||
downloadEphemeralPack: (
|
||||
packId: string,
|
||||
key: WhatIsThis
|
||||
) => Promise<void>;
|
||||
downloadQueuedPacks: () => void;
|
||||
downloadStickerPack: (
|
||||
id: string,
|
||||
key: string,
|
||||
options: WhatIsThis
|
||||
) => void;
|
||||
getInitialState: () => WhatIsThis;
|
||||
load: () => void;
|
||||
removeEphemeralPack: (packId: string) => Promise<void>;
|
||||
savePackMetadata: (
|
||||
packId: string,
|
||||
packKey: string,
|
||||
metadata: unknown
|
||||
) => void;
|
||||
getStickerPackStatus: (packId: string) => 'downloaded' | 'installed';
|
||||
getSticker: (
|
||||
packId: string,
|
||||
stickerId: number
|
||||
) => typeof window.Signal.Types.Sticker;
|
||||
getStickerPack: (packId: string) => WhatIsThis;
|
||||
getInstalledStickerPacks: () => WhatIsThis;
|
||||
};
|
||||
Types: {
|
||||
Attachment: {
|
||||
save: any;
|
||||
path: string;
|
||||
pending: boolean;
|
||||
flags: number;
|
||||
size: number;
|
||||
screenshot: {
|
||||
path: string;
|
||||
};
|
||||
thumbnail: {
|
||||
path: string;
|
||||
objectUrl: string;
|
||||
};
|
||||
contentType: string;
|
||||
error: unknown;
|
||||
|
||||
migrateDataToFileSystem: (
|
||||
attachment: WhatIsThis,
|
||||
options: unknown
|
||||
) => WhatIsThis;
|
||||
|
||||
isVoiceMessage: (attachments: unknown) => boolean;
|
||||
isImage: (attachments: unknown) => boolean;
|
||||
isVideo: (attachments: unknown) => boolean;
|
||||
isAudio: (attachments: unknown) => boolean;
|
||||
};
|
||||
MIME: {
|
||||
IMAGE_GIF: unknown;
|
||||
isImage: any;
|
||||
isJPEG: any;
|
||||
};
|
||||
Contact: {
|
||||
avatar?: { avatar?: unknown };
|
||||
number: Array<{ value: string }>;
|
||||
signalAccount: unknown;
|
||||
|
||||
contactSelector: (
|
||||
contact: typeof window.Signal.Types.Contact,
|
||||
options: unknown
|
||||
) => typeof window.Signal.Types.Contact;
|
||||
getName: (contact: typeof window.Signal.Types.Contact) => string;
|
||||
};
|
||||
Conversation: {
|
||||
computeHash: (data: string) => Promise<string>;
|
||||
deleteExternalFiles: (
|
||||
attributes: unknown,
|
||||
options: unknown
|
||||
) => Promise<void>;
|
||||
maybeUpdateProfileAvatar: (
|
||||
attributes: unknown,
|
||||
decrypted: unknown,
|
||||
options: unknown
|
||||
) => Promise<Record<string, unknown>>;
|
||||
maybeUpdateAvatar: (
|
||||
attributes: unknown,
|
||||
data: unknown,
|
||||
options: unknown
|
||||
) => Promise<WhatIsThis>;
|
||||
};
|
||||
PhoneNumber: {
|
||||
format: (
|
||||
identifier: string,
|
||||
options: Record<string, unknown>
|
||||
) => string;
|
||||
isValidNumber(
|
||||
phoneNumber: string,
|
||||
options?: {
|
||||
regionCode?: string;
|
||||
}
|
||||
): boolean;
|
||||
e164: string;
|
||||
error: string;
|
||||
};
|
||||
Errors: {
|
||||
toLogFormat(error: Error): void;
|
||||
};
|
||||
Message: {
|
||||
CURRENT_SCHEMA_VERSION: number;
|
||||
VERSION_NEEDED_FOR_DISPLAY: number;
|
||||
GROUP: 'group';
|
||||
PRIVATE: 'private';
|
||||
|
||||
initializeSchemaVersion: (version: {
|
||||
message: unknown;
|
||||
logger: unknown;
|
||||
}) => unknown & {
|
||||
schemaVersion: number;
|
||||
};
|
||||
hasExpiration: (json: string) => boolean;
|
||||
};
|
||||
Sticker: {
|
||||
emoji: string;
|
||||
packId: string;
|
||||
packKey: string;
|
||||
stickerId: number;
|
||||
data: {
|
||||
pending: boolean;
|
||||
path: string;
|
||||
};
|
||||
width: number;
|
||||
height: number;
|
||||
path: string;
|
||||
};
|
||||
VisualAttachment: any;
|
||||
};
|
||||
Util: {
|
||||
isFileDangerous: any;
|
||||
GoogleChrome: {
|
||||
isImageTypeSupported: (contentType: string) => unknown;
|
||||
isVideoTypeSupported: (contentType: string) => unknown;
|
||||
};
|
||||
downloadAttachment: (attachment: WhatIsThis) => WhatIsThis;
|
||||
getStringForProfileChange: (
|
||||
change: unknown,
|
||||
changedContact: unknown,
|
||||
i18n: unknown
|
||||
) => string;
|
||||
getTextWithMentions: (
|
||||
bodyRanges: BodyRangesType,
|
||||
text: string
|
||||
) => string;
|
||||
deleteForEveryone: (
|
||||
message: unknown,
|
||||
del: unknown,
|
||||
bool: boolean
|
||||
) => void;
|
||||
zkgroup: {
|
||||
generateProfileKeyCredentialRequest: (
|
||||
clientZkProfileCipher: unknown,
|
||||
uuid: string,
|
||||
profileKey: unknown
|
||||
) => { requestHex: string; context: unknown };
|
||||
getClientZkProfileOperations: (params: unknown) => unknown;
|
||||
handleProfileKeyCredential: (
|
||||
clientZkProfileCipher: unknown,
|
||||
profileCredentialRequestContext: unknown,
|
||||
credential: unknown
|
||||
) => unknown;
|
||||
deriveProfileKeyVersion: (
|
||||
profileKey: unknown,
|
||||
uuid: string
|
||||
) => string;
|
||||
};
|
||||
combineNames: typeof combineNames;
|
||||
migrateColor: (color: string) => ColorType;
|
||||
createBatcher: (options: WhatIsThis) => WhatIsThis;
|
||||
Registration: {
|
||||
everDone: () => boolean;
|
||||
markDone: () => void;
|
||||
markEverDone: () => void;
|
||||
remove: () => void;
|
||||
};
|
||||
hasExpired: () => boolean;
|
||||
makeLookup: (conversations: WhatIsThis, key: string) => void;
|
||||
parseRemoteClientExpiration: (value: WhatIsThis) => WhatIsThis;
|
||||
};
|
||||
LinkPreviews: {
|
||||
isMediaLinkInWhitelist: any;
|
||||
getTitleMetaTag: any;
|
||||
getImageMetaTag: any;
|
||||
assembleChunks: any;
|
||||
getChunkPattern: any;
|
||||
isLinkInWhitelist: any;
|
||||
isStickerPack: (url: string) => boolean;
|
||||
isLinkSafeToPreview: (url: string) => boolean;
|
||||
findLinks: (body: string, unknown?: any) => Array<string>;
|
||||
getDomain: (url: string) => string;
|
||||
};
|
||||
GroupChange: {
|
||||
renderChange: (change: unknown, things: unknown) => Array<string>;
|
||||
};
|
||||
Components: {
|
||||
StagedLinkPreview: any;
|
||||
Quote: any;
|
||||
ContactDetail: any;
|
||||
MessageDetail: any;
|
||||
Lightbox: any;
|
||||
MediaGallery: any;
|
||||
CaptionEditor: any;
|
||||
ConversationHeader: any;
|
||||
AttachmentList: any;
|
||||
getCallingNotificationText: (
|
||||
callHistoryDetails: unknown,
|
||||
i18n: unknown
|
||||
) => string;
|
||||
LightboxGallery: any;
|
||||
};
|
||||
OS: {
|
||||
isLinux: () => boolean;
|
||||
};
|
||||
Workflow: {
|
||||
IdleDetector: WhatIsThis;
|
||||
MessageDataMigrator: WhatIsThis;
|
||||
};
|
||||
IndexedDB: {
|
||||
removeDatabase: WhatIsThis;
|
||||
doesDatabaseExist: WhatIsThis;
|
||||
};
|
||||
Views: WhatIsThis;
|
||||
State: WhatIsThis;
|
||||
Logs: WhatIsThis;
|
||||
conversationControllerStart: WhatIsThis;
|
||||
Emojis: {
|
||||
getInitialState: () => WhatIsThis;
|
||||
load: () => void;
|
||||
};
|
||||
RefreshSenderCertificate: WhatIsThis;
|
||||
};
|
||||
|
||||
ConversationController: ConversationController;
|
||||
Events: WhatIsThis;
|
||||
MessageController: MessageControllerType;
|
||||
WebAPI: WebAPIConnectType;
|
||||
Whisper: WhisperType;
|
||||
|
||||
AccountCache: Record<string, boolean>;
|
||||
AccountJobs: Record<string, Promise<void>>;
|
||||
|
||||
doesAccountCheckJobExist: (number: string) => boolean;
|
||||
checkForSignalAccount: (number: string) => Promise<void>;
|
||||
isSignalAccountCheckComplete: (number: string) => boolean;
|
||||
hasSignalAccount: (number: string) => boolean;
|
||||
getServerTrustRoot: () => WhatIsThis;
|
||||
readyForUpdates: () => void;
|
||||
|
||||
// Flags
|
||||
CALLING: boolean;
|
||||
GV2: boolean;
|
||||
|
@ -132,12 +495,13 @@ export type DCodeIOType = {
|
|||
};
|
||||
Long: Long & {
|
||||
fromBits: (low: number, high: number, unsigned: boolean) => number;
|
||||
fromString: (str: string) => Long;
|
||||
fromString: (str: string | null) => Long;
|
||||
};
|
||||
};
|
||||
|
||||
type MessageControllerType = {
|
||||
register: (id: string, model: MessageModelType) => MessageModelType;
|
||||
register: (id: string, model: MessageModel) => MessageModel;
|
||||
unregister: (id: string) => void;
|
||||
};
|
||||
|
||||
export class CertificateValidatorType {
|
||||
|
@ -211,7 +575,7 @@ export type LoggerType = (...args: Array<any>) => void;
|
|||
export type WhisperType = {
|
||||
events: {
|
||||
on: (name: string, callback: (param1: any, param2?: any) => void) => void;
|
||||
trigger: (name: string, param1: any, param2?: any) => void;
|
||||
trigger: (name: string, param1?: any, param2?: any) => void;
|
||||
};
|
||||
Database: {
|
||||
open: () => Promise<IDBDatabase>;
|
||||
|
@ -221,8 +585,120 @@ export type WhisperType = {
|
|||
reject: Function
|
||||
) => void;
|
||||
};
|
||||
GroupConversationCollection: typeof ConversationModelCollectionType;
|
||||
ConversationCollection: typeof ConversationModelCollectionType;
|
||||
Conversation: typeof ConversationModelType;
|
||||
ConversationCollectionType: ConversationModelCollectionType;
|
||||
Conversation: typeof ConversationModel;
|
||||
ConversationType: ConversationModel;
|
||||
MessageCollection: typeof MessageModelCollectionType;
|
||||
Message: typeof MessageModelType;
|
||||
MessageCollectionType: MessageModelCollectionType;
|
||||
MessageAttributesType: MessageAttributesType;
|
||||
Message: typeof MessageModel;
|
||||
MessageType: MessageModel;
|
||||
GroupMemberConversation: WhatIsThis;
|
||||
KeyChangeListener: WhatIsThis;
|
||||
ConfirmationDialogView: WhatIsThis;
|
||||
ClearDataView: WhatIsThis;
|
||||
ReactWrapperView: WhatIsThis;
|
||||
activeConfirmationView: WhatIsThis;
|
||||
ToastView: WhatIsThis;
|
||||
ConversationArchivedToast: WhatIsThis;
|
||||
ConversationUnarchivedToast: WhatIsThis;
|
||||
AppView: WhatIsThis;
|
||||
WallClockListener: WhatIsThis;
|
||||
MessageRequests: WhatIsThis;
|
||||
BannerView: any;
|
||||
RecorderView: any;
|
||||
GroupMemberList: any;
|
||||
KeyVerificationPanelView: any;
|
||||
SafetyNumberChangeDialogView: any;
|
||||
|
||||
ExpirationTimerOptions: {
|
||||
map: any;
|
||||
getName: (number: number) => string;
|
||||
getAbbreviated: (number: number) => string;
|
||||
};
|
||||
|
||||
Notifications: {
|
||||
removeBy: (filter: Partial<unknown>) => void;
|
||||
add: (notification: unknown) => void;
|
||||
clear: () => void;
|
||||
disable: () => void;
|
||||
enable: () => void;
|
||||
fastClear: () => void;
|
||||
on: (
|
||||
event: string,
|
||||
callback: (id: string, messageId: string) => void
|
||||
) => void;
|
||||
};
|
||||
|
||||
DeliveryReceipts: {
|
||||
add: (reciept: WhatIsThis) => void;
|
||||
forMessage: (conversation: unknown, message: unknown) => Array<WhatIsThis>;
|
||||
onReceipt: (receipt: WhatIsThis) => void;
|
||||
};
|
||||
|
||||
ReadReceipts: {
|
||||
add: (receipt: WhatIsThis) => WhatIsThis;
|
||||
forMessage: (conversation: unknown, message: unknown) => Array<WhatIsThis>;
|
||||
onReceipt: (receipt: WhatIsThis) => void;
|
||||
};
|
||||
|
||||
ReadSyncs: {
|
||||
add: (sync: WhatIsThis) => WhatIsThis;
|
||||
forMessage: (message: unknown) => WhatIsThis;
|
||||
onReceipt: (receipt: WhatIsThis) => WhatIsThis;
|
||||
};
|
||||
|
||||
ViewSyncs: {
|
||||
add: (sync: WhatIsThis) => WhatIsThis;
|
||||
forMessage: (message: unknown) => Array<WhatIsThis>;
|
||||
onSync: (sync: WhatIsThis) => WhatIsThis;
|
||||
};
|
||||
|
||||
Reactions: {
|
||||
forMessage: (message: unknown) => Array<WhatIsThis>;
|
||||
add: (reaction: unknown) => WhatIsThis;
|
||||
onReaction: (reactionModel: unknown) => unknown;
|
||||
};
|
||||
|
||||
Deletes: {
|
||||
add: (model: WhatIsThis) => WhatIsThis;
|
||||
forMessage: (message: unknown) => Array<WhatIsThis>;
|
||||
onDelete: (model: WhatIsThis) => void;
|
||||
};
|
||||
|
||||
IdenticonSVGView: WhatIsThis;
|
||||
|
||||
ExpiringMessagesListener: WhatIsThis;
|
||||
TapToViewMessagesListener: WhatIsThis;
|
||||
|
||||
deliveryReceiptQueue: PQueue<WhatIsThis>;
|
||||
deliveryReceiptBatcher: BatcherType<WhatIsThis>;
|
||||
RotateSignedPreKeyListener: WhatIsThis;
|
||||
|
||||
ExpiredToast: any;
|
||||
BlockedToast: any;
|
||||
BlockedGroupToast: any;
|
||||
LeftGroupToast: any;
|
||||
OriginalNotFoundToast: any;
|
||||
OriginalNoLongerAvailableToast: any;
|
||||
FoundButNotLoadedToast: any;
|
||||
VoiceNoteLimit: any;
|
||||
VoiceNoteMustBeOnlyAttachmentToast: any;
|
||||
TapToViewExpiredIncomingToast: any;
|
||||
TapToViewExpiredOutgoingToast: any;
|
||||
FileSavedToast: any;
|
||||
ReactionFailedToast: any;
|
||||
MessageBodyTooLongToast: any;
|
||||
FileSizeToast: any;
|
||||
UnableToLoadToast: any;
|
||||
DangerousFileTypeToast: any;
|
||||
OneNonImageAtATimeToast: any;
|
||||
CannotMixImageAndNonImageAttachmentsToast: any;
|
||||
MaxAttachmentsToast: any;
|
||||
TimerConflictToast: any;
|
||||
ConversationLoadingScreen: any;
|
||||
ConversationView: any;
|
||||
View: any;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue