import { AudioStreamFormat } from "../../src/sdk/Audio/AudioStreamFormat";
import { ISpeechConfigAudioDevice } from "../common.speech/Exports";
import { AudioSourceEvent, EventSource, IAudioSource, IAudioStreamNode, Promise } from "../common/Exports";
import { IRecorder } from "./IRecorder";
export declare const AudioWorkletSourceURLPropertyName = "MICROPHONE-WorkletSourceUrl";
export declare class MicAudioSource implements IAudioSource {
    private readonly privRecorder;
    private readonly deviceId?;
    private static readonly AUDIOFORMAT;
    private privStreams;
    private privId;
    private privEvents;
    private privInitializeDeferral;
    private privMediaStream;
    private privContext;
    private privMicrophoneLabel;
    private privOutputChunkSize;
    constructor(privRecorder: IRecorder, outputChunkSize: number, audioSourceId?: string, deviceId?: string);
    readonly format: AudioStreamFormat;
    turnOn: () => Promise<boolean>;
    id: () => string;
    attach: (audioNodeId: string) => Promise<IAudioStreamNode>;
    detach: (audioNodeId: string) => void;
    turnOff: () => Promise<boolean>;
    readonly events: EventSource<AudioSourceEvent>;
    readonly deviceInfo: Promise<ISpeechConfigAudioDevice>;
    setProperty(name: string, value: string): void;
    private getMicrophoneLabel;
    private listen;
    private onEvent;
    private createAudioContext;
    private destroyAudioContext;
}
