UNPKG

@sawport/peers-caller

Version:

WebRTC multi-peer video call library with mesh architecture supporting up to 4 participants

72 lines 2.17 kB
/** * 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