import { EventEmitter } from 'events'; import { AppState } from '../types'; import { Logger } from '../utils/logger'; export interface MqttConfig { region?: string; userAgent?: string; selfListen?: boolean; listenEvents?: boolean; updatePresence?: boolean; forceLogin?: boolean; } export interface MqttConnectionData { mqttEndpoint: string; region: string; syncToken?: string; lastSeqId?: string; sessionId: string; clientId: string; } export declare class MqttClient extends EventEmitter { private client; private logger; private userId; private appState; private config; private isConnected; private reconnectAttempts; private maxReconnectAttempts; private lastSeqId; private syncToken; private sessionId; private deviceId; private clientId; private reconnectTimer; private pingInterval; private syncInterval; private presenceInterval; private lastPingTime; private connectionStartTime; private currentEndpointIndex; private irisSeqId; private irisSnapshotTimestampMs; private messageIds; private lastMessageTimestamp; private fbDtsg; private ttstamp; constructor(userId: string, appState: AppState, config?: MqttConfig, logger?: Logger); private detectRegion; private getDefaultUserAgent; private generateDeviceId; private generateClientId; private generateTtstamp; private getCookieString; private getCookieValue; private buildMqttUsername; private buildPassword; connect(): Promise; private subscribeToTopics; private sendConnectPayload; private sendInitialSync; sendPresence(isOnline: boolean): void; sendTypingIndicator(threadID: string, isTyping?: boolean): void; private startPingInterval; private stopPingInterval; private startSyncInterval; private stopSyncInterval; private startPresenceInterval; private stopPresenceInterval; private scheduleReconnect; private forceReconnect; private handleMessage; private handleMessengerSync; private processThread; private updateSyncState; private processDelta; private handleNewMessage; private extractMessageId; private extractThreadId; private extractSenderId; private extractTimestamp; private extractBody; private extractAttachments; private getAttachmentType; private extractMentions; private extractReplyInfo; private determineMessageType; private processMessageData; private handleAdminMessage; private handleTypingEvent; private handlePresenceEvent; private handleLegacyEvent; private handleInboxEvent; private handleMercuryEvent; private handleMessagingEvents; private handleOrcaNotifications; private handleThreadNameChange; private handleParticipantAdded; private handleParticipantLeft; private handleThreadAction; private handleMessageReaction; private handleDisconnectNotify; private handleRegionHint; private tryExtractMessage; disconnect(): void; getConnectionStatus(): boolean; getReconnectAttempts(): number; resetReconnectAttempts(): void; getLastMessageTimestamp(): number; getProcessedMessageCount(): number; markAsDelivered(threadID: string, messageID: string): void; markAsRead(threadID: string): void; } //# sourceMappingURL=mqttClient.d.ts.map