import { h } from 'preact';
import { UIPlugin } from '@uppy/core';
import type { Uppy, UIPluginOptions, Body, Meta } from '@uppy/core';
import locale from './locale.js';
export interface AudioOptions extends UIPluginOptions {
    showAudioSourceDropdown?: boolean;
    locale?: typeof locale;
}
interface AudioState {
    audioReady: boolean;
    recordingLengthSeconds: number;
    recordedAudio: string | null | undefined;
    hasAudio: boolean;
    cameraError: null;
    audioSources: MediaDeviceInfo[];
    currentDeviceId: string | MediaStreamTrack | null | undefined;
    isRecording: boolean;
    showAudioSourceDropdown: boolean;
    [id: string]: unknown;
}
/**
 * Audio recording plugin
 */
export default class Audio<M extends Meta, B extends Body> extends UIPlugin<AudioOptions, M, B, AudioState> {
    #private;
    static VERSION: any;
    private icon;
    constructor(uppy: Uppy<M, B>, opts?: AudioOptions);
    render(): h.JSX.Element;
    install(): void;
    uninstall(): void;
}
export {};
//# sourceMappingURL=Audio.d.ts.map