@onamfc/video-transcoder
Version:
Backend-agnostic video recording and transcoding module with AWS integration
49 lines • 2.08 kB
TypeScript
import { WebcamRecorder } from './core/MediaRecorder';
import { RecorderConfig, RecordingResult, UploadResult, ProgressEvent, ProcessingResult, ErrorEvent, StatusResult, RecordingList } from './types';
export declare class VideoRecorder {
private recorder;
private uploader;
private tracker;
private config;
constructor(config: RecorderConfig);
configure(options: Partial<RecorderConfig>): void;
initialize(): Promise<void>;
setPreviewElement(element: HTMLVideoElement): void;
startRecording(): Promise<void>;
stopRecording(): Promise<RecordingResult>;
pauseRecording(): void;
resumeRecording(): void;
uploadRecording(file: Blob, metadata?: Record<string, unknown>): Promise<UploadResult>;
retryUpload(trackingId: string): Promise<UploadResult>;
cancelUpload(trackingId: string): Promise<void>;
onProgress(callback: (progress: ProgressEvent) => void): void;
onComplete(callback: (result: ProcessingResult) => void): void;
onError(callback: (error: ErrorEvent) => void): void;
getUploadStatus(trackingId: string): Promise<StatusResult>;
listRecordings(userId?: string): Promise<RecordingList>;
getRecordingState(): ReturnType<WebcamRecorder['getRecordingState']>;
/**
* Records video and automatically uploads when complete.
* Uses the existing event system for progress tracking and completion.
*/
recordAndUpload(metadata?: Record<string, unknown>): Promise<{
recording: RecordingResult;
upload: UploadResult;
}>;
/**
* Waits for recording to complete either by manual stop or max duration
*/
private waitForRecordingComplete;
cleanup(): void;
static checkBrowserSupport(): Promise<{
supported: boolean;
features: {
mediaRecorder: boolean;
getUserMedia: boolean;
webrtc: boolean;
};
recommendations?: string[];
}>;
static getRecommendedSettings(deviceType?: 'mobile' | 'desktop'): Partial<RecorderConfig>;
}
//# sourceMappingURL=VideoRecorder.d.ts.map