import ButtonStateManager from './states/ButtonStateManager'; import FrontendToolExecutor from './tools/FrontendToolExecutor'; import BackendToolExecutor from './tools/BackendToolExecutor'; import AllToolsRegistry from './tools/AllToolsRegistry'; import { VoiceFunction } from './_types/sharedTypes'; import { UrlStartupHandler } from './init/UrlStartupHandler'; declare class SistaAiEngine extends ButtonStateManager { private static singletonInstance; private readonly apiKey; private readonly apiUrl; private readonly scrapeContent; private readonly sdkVersion; readonly frontendToolExecutor: FrontendToolExecutor; readonly backendToolExecutor: BackendToolExecutor; readonly allToolsRegistry: AllToolsRegistry; private readonly scraper; private readonly user; private readonly audioPlayer; private readonly functionAggregator; private readonly navigationObserver; private readonly urlStart; private readonly autoStart; private readonly namespace; private sistaAiRealTimeSession; private openAiConnection; private audioElement; private heartbeatInterval; private isDisconnecting; private socket; private readonly sessionStateManager; private promptTokenSizes; voice: string | undefined; private cachedSessionId; readonly urlStarter: UrlStartupHandler; private static sharedUrlStarter; constructor(apiKey: string, apiUrl: string | undefined, userId: string | null | undefined, scrapeContent: boolean | undefined, debug: string | undefined, urlStart: boolean | undefined, autoStart: boolean | undefined, namespace: string); startProcessing(silent?: boolean, sessionId?: string): Promise; private initializeWebSocketWithSistaAi; private createSistaAiSession; private initializeWebRTCWithOpenAi; private startHeartbeat; private handleHeartbeatError; disconnect(reason: 'user_disconnected' | 'rate_limited' | 'singleton' | 'error', silent?: boolean): Promise; registerFunctions(voiceFunctions: VoiceFunction[]): void; private _resetEngine; static getInstance(): SistaAiEngine | null; getSessionId(): string | null; isDisconnectingState(): boolean; isScrapeContentEnabled(): boolean; private customerFacingErrorHandler; savePromptTokenSize(size: number): void; getAndClearPromptTokenSizes(): number[]; } export default SistaAiEngine;