import type { FormatConfig } from "./connection.js"; import type { AudioWorkletConfig } from "../BaseConversation.js"; import type { InputController, InputDeviceConfig } from "../InputController.js"; export type InputConfig = InputDeviceConfig & { onError?(message: string, context?: unknown): void; }; export type InputMessageEvent = MessageEvent<[Uint8Array, number]>; export type InputListener = (event: InputMessageEvent) => void; export type InputEventTarget = { addListener(listener: InputListener): void; removeListener(listener: InputListener): void; }; export declare class MediaDeviceInput implements InputController, InputEventTarget { private readonly context; private readonly analyser; private readonly worklet; private inputStream; private mediaStreamSource; private permissions; private onError; static create({ sampleRate, format, preferHeadphonesForIosDevices, inputDeviceId, workletPaths, libsampleratePath, onError, }: FormatConfig & InputConfig & AudioWorkletConfig): Promise; private static getDeviceIdConstraint; private muted; private readonly volumeProvider; private constructor(); getAnalyser(): AnalyserNode; getVolume(): number; getByteFrequencyData(buffer: Uint8Array): void; isMuted(): boolean; addListener(listener: InputListener): void; removeListener(listener: InputListener): void; private forgetInputStreamAndSource; close(): Promise; setMuted(isMuted: boolean): Promise; private settingInput; setDevice(config?: Partial & InputDeviceConfig): Promise; private handlePermissionsChange; } //# sourceMappingURL=input.d.ts.map