import { type AudioEffectOptions } from './effects/audioEffects';
export interface AudioRecorderOptions {
    /** Optional audio constraints to pass to getUserMedia */
    audioConstraints?: MediaTrackConstraints;
    /** Recording data chunk interval in milliseconds */
    chunkInterval?: number;
    /** Custom MIME type to use if supported */
    preferredMimeType?: string;
    /** Called when recording is unsupported on the browser */
    onNotSupported?: () => void;
    /** Optional bitrate for audio recording quality */
    audioBitsPerSecond?: number;
    /** Volume metering refresh rate in ms (default: 100) */
    volumeMeterRefreshRate?: number;
    /** Audio effect to apply during recording (default: none) */
    audioEffect?: AudioEffectOptions;
}
export interface UseAudioRecorderReturn {
    startRecording: () => Promise<void>;
    stopRecording: () => Promise<void>;
    cancelRecording: () => void;
    pauseRecording: () => void;
    resumeRecording: () => Promise<void>;
    saveRecording: () => Promise<{
        blob: Blob;
        url: string;
    } | null>;
    playRecording: () => Promise<string | null>;
    /** Apply a new audio effect while recording */
    applyEffect: (effect: AudioEffectOptions) => void;
    isRecording: boolean;
    isPaused: boolean;
    recordingDuration: number;
    mediaStream: MediaStream | null;
    /** Current audio volume level (0-1) */
    currentVolume: number;
    /** Error encountered during recording (if any) */
    error: Error | null;
    /** Whether permission to record has been denied */
    isPermissionDenied: boolean;
    /** Information about browser compatibility */
    browserCompatibility: {
        isSupported: boolean;
        mediaRecorderSupported: boolean;
        getUserMediaSupported: boolean;
        audioContextSupported: boolean;
        isMobileBrowser: boolean;
    };
    /** Current audio effect being applied */
    currentEffect: AudioEffectOptions;
}
export default function useAudioRecorder(options?: AudioRecorderOptions): UseAudioRecorderReturn;
export { AudioEffectType, type AudioEffectOptions } from './effects/audioEffects';
//# sourceMappingURL=index.d.ts.map