import { SDKConfig } from '../config/SDKConfig';
import { AugnitoSource } from '../support/AugnitoSource';
/**
 * Augnito Web SDK Client
 */
declare class WebClient {
    private _logTag;
    private _speechSocket;
    private _isConnecting;
    private _config;
    constructor(config: SDKConfig);
    isConnecting(): boolean;
    /**
     * Returns the connected state
     * @returns true, if the socket state is OPEN; otherwise false
     */
    get connected(): boolean;
    /**
     * Retrieves the client SDK configuration
     * @returns The SDKConfig
     */
    getConfig(): SDKConfig;
    /**
     * Toggles the Speech API connection
     * @description if already connected, it will stop the web socket; otherwise, it will start a new connection
     */
    toggleListening(): void;
    /**
     * @description
     * Creates Augnito Client
     *
     * @param {String} socketURL The URL of the socket
     * @param {AugnitoSource} source The source of the application
     */
    startListening(socketURL: string, source: AugnitoSource): void;
    /**
     * Stops the web socket if the connection is alive.
     * @param alertEndOfSession If true, EndOfSession event will be fired.
     * @returns
     */
    stopListening(alertEndOfSession: boolean): void;
    /**
     * closes all sockets and streams
     */
    dispose(): void;
    private createWebSocket;
    private clearAll;
    private closeWebSocket;
    private onPartialText;
    private onEvent;
    private onError;
    private onSocketPartialResult;
    private onSocketFinalResult;
    private onSessionEvent;
    private onEndOfSession;
    private onReadyForSpeech;
    private onMicrophoneOnError;
}
export { WebClient };
