import { LoginData } from '@wireapp/api-client/lib/auth/'; import { ClientCapabilityData, RegisteredClient } from '@wireapp/api-client/lib/client/'; import { APIClient } from '@wireapp/api-client'; import { CRUDEngine } from '@wireapp/store-engine'; import type { ProteusService } from '../messagingProtocols/proteus'; import { InitialPrekeys } from '../messagingProtocols/proteus/ProteusService/CryptoClient'; import { ClientInfo } from './'; export interface MetaClient extends RegisteredClient { domain?: string; meta: { is_verified?: boolean; is_mls_verified?: boolean; primary_key: string; }; } export declare class ClientService { private readonly apiClient; private readonly proteusService; private readonly storeEngine; private readonly database; private readonly backend; private readonly logger; constructor(apiClient: APIClient, proteusService: ProteusService, storeEngine: CRUDEngine); getClients(): Promise; /** * Will delete the given client from backend and will also delete it from the local database * * note: use deleteLocalClient if you wish to delete the client currently used by the user * * @param clientId The id of the client to delete * @param password? Password of the owning user. Can be omitted for temporary devices */ deleteClient(clientId: string, password?: string): Promise; /** * Will delete the local client (client currently in use by the user) from backend and will also delete it from the local database * @param password? Password of the owning user. Can be omitted for temporary devices */ deleteLocalClient(password?: string): Promise; private getLocalClient; /** * Will try to load the local client from the database into memory. * Will return undefined if the client is not found in the database or if the client does not exist on the backend. * If the client doesn't exist on backend it will purge the database and return undefined. * If the client is found on the backend it will update the local client in the database and return it. * * @return the loaded client or undefined */ loadClient(): Promise; private createLocalClient; putClientCapabilities(clientId: string, capabilities: ClientCapabilityData): Promise; /** * Will download all the clients of the self user (excluding the current client) and will store them in the database * @param currentClient - the id of the current client (to be excluded from the list) */ synchronizeClients(currentClient: string): Promise; register(loginData: LoginData, clientInfo: ClientInfo, { prekeys, lastPrekey }: InitialPrekeys, useLegacyNotificationStream?: boolean): Promise; } //# sourceMappingURL=ClientService.d.ts.map