@sawport/peers-caller
Version:
WebRTC multi-peer video call library with mesh architecture supporting up to 4 participants
72 lines • 2.17 kB
TypeScript
/**
* 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