import { Extension } from '@tiptap/core';
export interface AudioRecordingOptions {
    maxDuration: number;
    audioFormat: 'webm' | 'mp4' | 'wav';
    sampleRate: number;
    audioBitsPerSecond: number;
    onRecordingStart?: () => void;
    onRecordingStop?: (blob: Blob, duration: number) => void;
    onRecordingError?: (error: Error) => void;
    onAudioUpload?: (blob: Blob) => Promise<{
        url: string;
        id: string;
    }>;
    enableWaveform: boolean;
    enableTranscription: boolean;
    transcriptionService?: (blob: Blob) => Promise<string>;
}
export interface AudioRecordingState {
    isRecording: boolean;
    isPaused: boolean;
    duration: number;
    mediaRecorder: MediaRecorder | null;
    audioStream: MediaStream | null;
    audioChunks: Blob[];
    waveformData: number[];
}
declare module '@tiptap/core' {
    interface Commands<ReturnType> {
        audioRecording: {
            /**
             * Start audio recording
             */
            startRecording: () => ReturnType;
            /**
             * Stop audio recording
             */
            stopRecording: () => ReturnType;
            /**
             * Pause audio recording
             */
            pauseRecording: () => ReturnType;
            /**
             * Resume audio recording
             */
            resumeRecording: () => ReturnType;
            /**
             * Insert recorded audio
             */
            insertRecordedAudio: (audioData: {
                url: string;
                id: string;
                duration: number;
                transcription?: string;
                waveform?: number[];
            }) => ReturnType;
        };
    }
}
export declare const AudioRecordingExtension: Extension<AudioRecordingOptions, any>;
export default AudioRecordingExtension;
//# sourceMappingURL=AudioRecordingExtension.d.ts.map