import { IAudioSource, IAudioStreamNode, Promise } from "../common/Exports";
import { CancellationErrorCode, CancellationReason, DialogServiceConnector, SpeechRecognitionResult } from "../sdk/Exports";
import { ServiceRecognizerBase } from "./Exports";
import { IAuthentication } from "./IAuthentication";
import { IConnectionFactory } from "./IConnectionFactory";
import { RecognitionMode, RecognizerConfig } from "./RecognizerConfig";
import { SpeechConnectionMessage } from "./SpeechConnectionMessage.Internal";
export declare class DialogServiceAdapter extends ServiceRecognizerBase {
    private privDialogServiceConnector;
    private privDialogConnectionFactory;
    private privDialogAuthFetchEventId;
    private privDialogIsDisposed;
    private privDialogAuthentication;
    private privDialogAudioSource;
    private privDialogRequestSession;
    private privConnectionConfigPromise;
    private privDialogConnectionPromise;
    private privSuccessCallback;
    private privConnectionLoop;
    private terminateMessageLoop;
    private agentConfigSent;
    private privTurnStateManager;
    constructor(authentication: IAuthentication, connectionFactory: IConnectionFactory, audioSource: IAudioSource, recognizerConfig: RecognizerConfig, dialogServiceConnector: DialogServiceConnector);
    isDisposed(): boolean;
    dispose(reason?: string): void;
    sendMessage: (message: string) => void;
    protected privDisconnect(): void;
    protected processTypeSpecificMessages(connectionMessage: SpeechConnectionMessage, successCallback?: (e: SpeechRecognitionResult) => void, errorCallBack?: (e: string) => void): void;
    protected cancelRecognition(sessionId: string, requestId: string, cancellationReason: CancellationReason, errorCode: CancellationErrorCode, error: string, cancelRecoCallback: (e: SpeechRecognitionResult) => void): void;
    protected listenOnce: (recoMode: RecognitionMode, successCallback: (e: SpeechRecognitionResult) => void, errorCallback: (e: string) => void) => any;
    protected sendAudio: (audioStreamNode: IAudioStreamNode) => Promise<boolean>;
    private dialogConnectImpl;
    private receiveDialogMessageOverride;
    private startMessageLoop;
    private configConnection;
    private fetchDialogConnection;
    private sendPreAudioMessages;
    private sendAgentConfig;
    private sendAgentContext;
    private fireEventForResult;
}
