import { StorageType } from './types'; import { SessionType } from './session-types'; import { SignalProtocolAddress } from './signal-protocol-address'; import { SessionRecord } from './session-record'; export interface MessageType { type: number; body?: string; registrationId?: number; } export declare class SessionCipher { storage: StorageType; remoteAddress: SignalProtocolAddress; constructor(storage: StorageType, remoteAddress: SignalProtocolAddress | string); getRecord(encodedNumber: string): Promise; encrypt(buffer: ArrayBuffer): Promise; private encryptJob; private loadKeysAndRecord; private prepareChain; private fillMessageKeys; private calculateRatchet; decryptPreKeyWhisperMessage(buff: string | ArrayBuffer, encoding?: string): Promise; decryptWithSessionList(buffer: ArrayBuffer, sessionList: SessionType[], errors: any[]): Promise<{ plaintext: ArrayBuffer; session: SessionType; }>; decryptWhisperMessage(buff: string | ArrayBuffer, encoding?: string): Promise; doDecryptWhisperMessage(messageBytes: ArrayBuffer, session: SessionType): Promise; maybeStepRatchet(session: SessionType, remoteKey: ArrayBuffer, previousCounter: number): Promise; getRemoteRegistrationId(): Promise; hasOpenSession(): Promise; closeOpenSessionForDevice(): Promise; deleteAllSessionsForDevice(): Promise; }