import AudioStreamer, { AudioStreamConfig } from "./speech-audio-streamer";
import { RealtimeMessageAckAudio, RealtimeMessageAuthenticationToken, RealtimeMessageConnect, RealtimeMessageResult, RealtimeParameters } from "./ai-speech-api-client";
export declare enum RealtimeWebSocketState {
    "STOPPED" = 0,
    "RUNNING" = 1,
    "OPENING" = 2,
    "AUTHENTICATING" = 3,
    "ERROR" = 4
}
export interface RealtimeClientListener {
    onClose(closeEvent: CloseEvent): any;
    onConnect(openEvent: Event): any;
    onError(errorEvent: Error): any;
    onConnectMessage(connectMessage: RealtimeMessageConnect): any;
    onResult(resultMessage: RealtimeMessageResult): any;
    onAckAudio(ackMessage: RealtimeMessageAckAudio): any;
}
export declare class AIServiceSpeechRealtimeApi {
    constructor(realtimeClientListener: RealtimeClientListener, token: string, compartmentId: string, mediaStream: MediaStream, realtimeEndpoint?: string, realtimeParameters?: RealtimeParameters);
    token: string;
    realtimeEndpoint: string;
    realtimeWebSocketClient: WebSocket;
    realtimeWebSocketState: RealtimeWebSocketState;
    realtimeParameters: RealtimeParameters;
    audioStreamer: AudioStreamer;
    audioStreamConfig: AudioStreamConfig;
    mediaStream: MediaStream;
    realtimeAuthPayload: RealtimeMessageAuthenticationToken;
    compartmentId: string;
    realtimeClientListener: RealtimeClientListener;
    private onWebsocketOpen;
    private onWebsocketClose;
    private onWebsocketMessage;
    private onWebsocketError;
    private initAudio;
    private parseParameters;
    private createAuthenticationPayload;
    connect: () => void;
    close: () => void;
    pause: () => void;
    resume: () => void;
    getWebSocketState: () => RealtimeWebSocketState;
    setWebSocketState: (state: RealtimeWebSocketState) => void;
    requestFinalResult: () => void;
}
//# sourceMappingURL=ai-speech-realtime-web-client.d.ts.map