import { Observable } from 'rxjs'; export interface BotMessage { text: string; sender: 'bot' | 'user'; timestamp: number; } export interface BotChannelConfig { websocketUrl: string; extension: string; widgetId: string; botName?: string; greetingPhrase?: string; maxReconnectAttempts?: number; reconnectDelay?: number; } export type AuthenticationInputResult = { status: 'AUTHENTICATION_SUCCESS' | 'AUTHENTICATION_CANCELLED' | 'AUTHENTICATION_ERROR'; encryptedToken?: string; errorMessage?: string; }; export declare class BotChannel { private readonly messages$; private readonly handover$; private readonly connected$; private readonly disconnected$; private readonly connectionFailed$; private readonly inactivityTimeout$; private readonly botNameChanged$; private readonly streamStarted$; private readonly authenticationRequest$; private socket; private streamBuffer; private inactivityTimer; private isConnected; private isIntentionalDisconnect; private sequenceNumber; private reconnectAttempts; private reconnectTimeout; private dialogId; private lastReceivedSequenceNumber; private readonly sessionStorageKey; private readonly sessionStorageDialogIdKey; private readonly sessionStorageSequenceKey; private _pendingAuthResult; private readonly websocketUrl; private readonly extension; private readonly greetingPhrase; private readonly maxReconnectAttempts; private readonly reconnectDelay; private readonly inactivityTimeoutMs; botName: string; constructor(config: BotChannelConfig); connect(): void; disconnect(): void; sendMessage(text: string): void; requestHandover(): void; messages(): Observable; onHandover(): Observable; onConnected(): Observable; onDisconnected(): Observable; onConnectionFailed(): Observable; onInactivityTimeout(): Observable; onBotNameChanged(): Observable; onStreamStarted(): Observable; onAuthenticationRequest(): Observable<{ provider: string; customerKey: string; orgKey: string; }>; sendAuthenticationInput(result: AuthenticationInputResult): void; private _sendAuthenticationInputPayload; loadMessagesFromStorage(): BotMessage[]; private establishConnection; private handleOpen; private handleMessage; private handleClose; private handleError; private sendInitializePayload; private sendReconnectPayload; private getNextSequenceNumber; private attemptReconnect; private clearReconnectTimeout; private resetInactivityTimer; private clearInactivityTimer; private persistMessage; private getStoredMessages; private loadStateFromStorage; private persistDialogId; private persistSequenceNumber; private clearStoredState; }