/**
 * CallRecorder - Recording and transcription management for PeersCaller
 * Handles local recording of mixed streams and audio transcription
 */
import type { RecordingConfig, RecordingData, TranscriptData } from "../types";
export interface RecorderCallbacks {
    onRecordingStarted?: (recordingData: RecordingData) => void;
    onRecordingChunk?: (chunk: Blob, recordingData: RecordingData) => void;
    onRecordingStopped?: (recordingData: RecordingData) => void;
    onTranscriptReceived?: (transcript: TranscriptData) => void;
    onError?: (error: Error) => void;
}
export declare class CallRecorder {
    private mixer;
    private recorder;
    private localTranscriber;
    private isRecording;
    private config;
    private callbacks;
    constructor(conversationId: string, userId: string, config?: RecordingConfig, callbacks?: RecorderCallbacks);
    /**
     * Start recording with mixed streams and recording data
     */
    startRecording(streams: MediaStream[], recordingData: RecordingData): Promise<void>;
    /**
     * Stop recording
     */
    stopRecording(): Promise<TranscriptData[]>;
    /**
     * Reset video streams for mixer (used when screen sharing changes)
     */
    resetVideoStreams(streams: MediaStream[]): void;
    /**
     * Set up MediaRecorder event handlers
     */
    private setupRecorderEventHandlers;
    /**
     * Get current recording state
     */
    getRecordingState(): {
        isRecording: boolean;
        isTranscribing: boolean;
        transcriptCount: number;
    };
    /**
     * Get all transcripts
     */
    getTranscripts(): TranscriptData[];
    /**
     * Check if recording is supported
     */
    static isRecordingSupported(): boolean;
    /**
     * Check if transcription is supported
     */
    static isTranscriptionSupported(): boolean;
    /**
     * Get supported mime types for recording
     */
    static getSupportedMimeTypes(): string[];
    /**
     * Cleanup recorder resources
     */
    cleanup(): void;
}
declare global {
    interface Window {
        SpeechRecognition: any;
        webkitSpeechRecognition: any;
    }
}
//# sourceMappingURL=CallRecorder.d.ts.map