UNPKG

wowok

Version:

Wowok Blockchain TypeScript API

93 lines (92 loc) 3.86 kB
import type { CallEnv } from "../common.js"; import type { MessengerConfig, Message, SendMessageResult, DecryptedMessage, ZipContentType, ListOperationResponse, GuardListItem, PreKeyStatus, GetSettingsResponse, UpdateSettingsRequest } from "./types.js"; export declare class Messenger { private session; private serverClient; private config; private userAddress; private onMessageCallback; private pollingTimer; private messageConsecutiveEmptyPulls; private prekeyConsecutiveOkCount; private currentMessageInterval; private isPollingRunning; private messageStorage; private sessionStateStorage; private decryptionEngine; private waitingMessages; private failedMessages; private waitingMessageRetries; constructor(userAddress: string, config?: Partial<MessengerConfig>); getUserAddress(): string; getPublicKey(): Promise<string>; isValidGuardMessage(guardAddress: string | null | undefined, passportAddress: string | null | undefined): boolean; private generateSignatureParams; private generateNonce; initialize(): Promise<void>; private checkAndRefillPrekeys; private startPollingTimer; private stopPollingTimer; private scheduleNextPoll; private getNextPollInterval; private poll; private triggerFastPoll; sendMessage(recipientAddress: string, plaintext: string, options?: { guardAddress?: string; passportAddress?: string; force?: boolean; }): Promise<SendMessageResult>; pullMessages(limit?: number): Promise<{ messages: DecryptedMessage[]; prekey_status?: PreKeyStatus; }>; private getLastSentLeafIndex; getSessionMessages(peerAddress: string): Message[]; getSessionState(peerAddress: string): import("./types.js").SessionState; submitChainProof(env: CallEnv, peerAddress: string, description?: string): Promise<{ proofAddress: string; txHash: string; }>; destroy(): void; disconnect(): void; setOnMessageCallback(onMessage: (messages: DecryptedMessage[]) => void): void; sendZipFile(recipientAddress: string, source: string, options?: { fileName?: string; contentType?: ZipContentType; guardAddress?: string; passportAddress?: string; force?: boolean; }): Promise<SendMessageResult>; private loadFileData; private detectContentType; private _createSignedRequest; private _validateAddresses; addToBlacklist(addresses: string[]): Promise<ListOperationResponse>; removeFromBlacklist(addresses: string[]): Promise<ListOperationResponse>; clearBlacklist(): Promise<ListOperationResponse>; getBlacklist(): Promise<string[]>; existInBlacklist(addresses: string[]): Promise<ListOperationResponse>; addToFriendsList(addresses: string[]): Promise<ListOperationResponse>; removeFromFriendsList(addresses: string[]): Promise<ListOperationResponse>; clearFriendsList(): Promise<ListOperationResponse>; getFriendsList(): Promise<string[]>; existInFriendsList(addresses: string[]): Promise<ListOperationResponse>; addToGuardList(guards: GuardListItem[]): Promise<ListOperationResponse>; removeFromGuardList(addresses: string[]): Promise<ListOperationResponse>; getGuardList(): Promise<ListOperationResponse>; getSettings(): Promise<GetSettingsResponse>; setSettings(settings: Partial<UpdateSettingsRequest>): Promise<boolean>; private tryDecryptMessage; private isRetryableError; private processWaitingMessages; private saveFailedMessage; private reschedulePolling; getFailedMessages(): Array<{ messageId: string; from: string; error: string; leafIndex?: number; }>; clearFailedMessages(messageId?: string): void; getWaitingMessageCount(): number; }