import type { WAMessage } from '../Types/index.js'; import type { SignalRepositoryWithLIDStore } from '../Types/Signal.js'; import { type BinaryNode } from '../WABinary/index.js'; import type { ILogger } from './logger.js'; export declare const getDecryptionJid: (sender: string, repository: SignalRepositoryWithLIDStore) => Promise; export declare const NO_MESSAGE_FOUND_ERROR_TEXT = "Message absent from node"; export declare const MISSING_KEYS_ERROR_TEXT = "Key used already or never filled"; export declare const ACCOUNT_RESTRICTED_TEXT = "Your account has been restricted"; export declare const DECRYPTION_RETRY_CONFIG: { maxRetries: number; baseDelayMs: number; sessionRecordErrors: string[]; }; /** NACK reason codes we send to the server (client → server) */ export declare const NACK_REASONS: { SenderReachoutTimelocked: number; ParsingError: number; UnrecognizedStanza: number; UnrecognizedStanzaClass: number; UnrecognizedStanzaType: number; InvalidProtobuf: number; InvalidHostedCompanionStanza: number; MissingMessageSecret: number; SignalErrorOldCounter: number; MessageDeletedOnPeer: number; UnhandledError: number; UnsupportedAdminRevoke: number; UnsupportedLIDGroup: number; DBOperationFailed: number; }; /** * Server-side error codes returned in ack stanzas (server → client) that we * currently have dedicated handlers for. Extend as more handlers are added. * Distinct from the client-side NackReason enum (WAWebCreateNackFromStanza). */ export declare const SERVER_ERROR_CODES: { /** * 1:1 message missing privacy token (tctoken). Usually means the account is * restricted: WhatsApp blocks starting new chats but preserves existing ones, * since established chats already carry a tctoken. */ readonly MessageAccountRestriction: "463"; /** Stanza validation failure (SMAX_INVALID) — likely stale device session */ readonly SmaxInvalid: "479"; }; export declare const extractAddressingContext: (stanza: BinaryNode) => { addressingMode: string; senderAlt: string | undefined; recipientAlt: string | undefined; }; /** * Decode the received node as a message. * @note this will only parse the message, not decrypt it */ export declare function decodeMessageNode(stanza: BinaryNode, meId: string, meLid: string): { fullMessage: WAMessage; author: string; sender: string; }; export declare const decryptMessageNode: (stanza: BinaryNode, meId: string, meLid: string, repository: SignalRepositoryWithLIDStore, logger: ILogger) => { fullMessage: WAMessage; category: string | undefined; author: string; decrypt(): Promise; }; //# sourceMappingURL=decode-wa-message.d.ts.map