import { type HTMLAttributes } from 'react';
import { type VariantProps } from 'class-variance-authority';
declare const rootVariants: (props?: ({
size?: "sm" | "md" | "lg" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
/** Curated imperative handle for agent / external automation. */
export interface AudioRecorderHandle {
isRecording: () => boolean;
getDuration: () => number;
hasRecording: () => boolean;
startRecording: () => Promise | void;
stopRecording: () => void;
discard: () => void;
}
export interface AudioRecorderProps extends Omit, 'children' | 'onError'>, VariantProps {
/** Called on stop with the final blob + duration in ms. */
onRecordingComplete?: (blob: Blob, durationMs: number) => void;
/** Called when recording is cancelled. */
onCancel?: () => void;
/** Called when an error occurs. */
onError?: (error: 'permission-denied' | 'no-device' | 'unsupported' | 'capture-failed' | 'max-duration' | 'max-size') => void;
/**
* Auto-stop after this many milliseconds of active recording. Default
* 30 minutes. Set `null` to disable.
*/
maxDurationMs?: number | null;
/**
* Auto-stop when the accumulated blob chunks exceed this many bytes.
* Default 250 MB. Set `null` to disable.
*/
maxBytes?: number | null;
}
export declare const AudioRecorder: import("react").ForwardRefExoticComponent>;
export {};
//# sourceMappingURL=audio-recorder.d.ts.map