import { ReplayableAudioNode } from "../common.browser/Exports";
import { IEventSource, PlatformEvent, Promise } from "../common/Exports";
import { SpeechRecognitionEvent } from "./RecognitionEvents";
export declare class RequestSession {
    private privIsDisposed;
    private privServiceTelemetryListener;
    private privDetachables;
    private privRequestId;
    private privAudioSourceId;
    private privAudioNodeId;
    private privAudioNode;
    private privAuthFetchEventId;
    private privIsAudioNodeDetached;
    private privIsRecognizing;
    private privRequestCompletionDeferral;
    private privIsSpeechEnded;
    private privTurnStartAudioOffset;
    private privLastRecoOffset;
    private privHypothesisReceived;
    private privBytesSent;
    private privRecogNumber;
    private privSessionId;
    constructor(audioSourceId: string);
    readonly sessionId: string;
    readonly requestId: string;
    readonly audioNodeId: string;
    readonly completionPromise: Promise<boolean>;
    readonly isSpeechEnded: boolean;
    readonly isRecognizing: boolean;
    readonly currentTurnAudioOffset: number;
    readonly recogNumber: number;
    readonly bytesSent: number;
    listenForServiceTelemetry(eventSource: IEventSource<PlatformEvent>): void;
    startNewRecognition(): void;
    onAudioSourceAttachCompleted: (audioNode: ReplayableAudioNode, isError: boolean, error?: string) => void;
    onPreConnectionStart: (authFetchEventId: string, connectionId: string) => void;
    onAuthCompleted: (isError: boolean, error?: string) => void;
    onConnectionEstablishCompleted: (statusCode: number, reason?: string) => void;
    onServiceTurnEndResponse: (continuousRecognition: boolean) => void;
    onHypothesis(offset: number): void;
    onPhraseRecognized(offset: number): void;
    onServiceRecognized(offset: number): void;
    onAudioSent(bytesSent: number): void;
    dispose: (error?: string) => void;
    getTelemetry: () => string;
    onStopRecognizing(): void;
    onSpeechEnded(): void;
    protected onEvent: (event: SpeechRecognitionEvent) => void;
    private onComplete;
    private detachAudioNode;
}
