session-desktop/ts/window.d.ts

102 lines
3.1 KiB
TypeScript

import { LocalizerType } from '../types/Util';
import { LibsignalProtocol } from '../../libtextsecure/libsignal-protocol';
import { SignalInterface } from '../../js/modules/signal';
import { Libloki } from '../libloki';
import { LokiPublicChatFactoryInterface } from '../js/modules/loki_public_chat_api';
import { LokiAppDotNetServerInterface } from '../js/modules/loki_app_dot_net_api';
import { LibTextsecure } from '../libtextsecure';
import { ConfirmationDialogParams } from '../background';
import {} from 'styled-components/cssprop';
import { ConversationControllerType } from '../js/ConversationController';
import { any } from 'underscore';
import { Store } from 'redux';
import { MessageController } from './session/messages/MessageController';
import { DefaultTheme } from 'styled-components';
import { ConversationCollection } from './models/conversation';
import { ConversationType } from './state/ducks/conversations';
/*
We declare window stuff here instead of global.d.ts because we are importing other declarations.
If you import anything in global.d.ts, the type system won't work correctly.
*/
declare global {
interface Window {
CONSTANTS: any;
Events: any;
Lodash: any;
LokiAppDotNetServerAPI: any;
LokiFileServerAPI: any;
LokiPublicChatAPI: any;
LokiSnodeAPI: any;
Session: any;
Signal: SignalInterface;
StubAppDotNetApi: any;
StringView: any;
StubMessageAPI: any;
Whisper: any;
clearLocalData: any;
clipboard: any;
confirmationDialog: (params: ConfirmationDialogParams) => any;
dcodeIO: any;
displayNameRegex: any;
friends: any;
getConversations: any;
getFriendsFromContacts: any;
getSettingValue: any;
i18n: LocalizerType;
libloki: Libloki;
libsignal: LibsignalProtocol;
log: any;
lokiFeatureFlags: {
useOnionRequests: boolean;
useFileOnionRequests: boolean;
useFileOnionRequestsV2: boolean;
useRequestEncryptionKeyPair: boolean;
padOutgoingAttachments: boolean;
};
lokiFileServerAPI: LokiFileServerInstance;
lokiPublicChatAPI: LokiPublicChatFactoryInterface;
lokiSnodeAPI: LokiSnodeAPI;
onLogin: any;
resetDatabase: any;
restart: any;
seedNodeList: any;
setPassword: any;
setSettingValue: any;
showEditProfileDialog: any;
showResetSessionIdDialog: any;
storage: any;
textsecure: LibTextsecure;
toggleLinkPreview: any;
toggleMediaPermissions: any;
toggleMenuBar: any;
toggleSpellCheck: any;
setTheme: (newTheme: string) => any;
tokenlessFileServerAdnAPI: LokiAppDotNetServerInterface;
userConfig: any;
versionInfo: any;
getStoragePubKey: (key: string) => string;
getConversations: () => ConversationCollection;
profileImages: any;
MediaRecorder: any;
dataURLToBlobSync: any;
autoOrientImage: any;
contextMenuShown: boolean;
inboxStore?: Store;
actionsCreators: any;
extension: {
expired: (boolean) => void;
expiredStatus: () => boolean;
};
openUrl: (string) => void;
lightTheme: DefaultTheme;
darkTheme: DefaultTheme;
LokiPushNotificationServer: any;
LokiPushNotificationServerApi: any;
}
}