import { Component } from 'react'; export declare enum DOMMicrophoneErrorTypes { streamError = 2, mediaDevicesAccessFail = 3, noVideoInputs = 4, enumerateDevicesFail = 5 } export declare enum DOMMicrophoneStateEnum { isLoading = 2, isError = 3, isListening = 4 } export interface DOMMicrophoneState { curStep: DOMMicrophoneStateEnum; audioInputDeviceList: MediaDeviceInfo[]; curId: string; } export interface DOMMicrophoneTriggers { onAudioSrcReady?: (audioURL: string) => void; onAudioRecordingStarted?: () => void; onAudioRecordingStopped?: () => void; onAudioRecordingPaused?: () => void; } export interface DOMMicrophoneCallbacks { onAudioVisualizationReady?: (video: HTMLVideoElement) => void; onAudioVisualizationRemoved?: () => void; onError?: (errorType: DOMMicrophoneErrorTypes) => void; } export interface DOMMicrophoneProps extends DOMMicrophoneTriggers, DOMMicrophoneCallbacks { showControls: boolean; } export declare class DOMMicrophone extends Component { ctx: CanvasRenderingContext2D; audioVisualization: HTMLCanvasElement; private stream; constructor(props: any); getStream(): MediaStream; startStream(strDeviceId: string): void; componentWillUnmount(): void; setStateToError(errorType: DOMMicrophoneErrorTypes): void; componentDidMount(): void; startAudioRecording(): void; stopAudioRecording(): void; pauseAudioRecording(): void; renderError(): JSX.Element; renderLoading(): JSX.Element; renderVisualization(): JSX.Element; renderControls(): JSX.Element; render(): JSX.Element; }