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): void; initialize(): Promise; setPreviewElement(element: HTMLVideoElement): void; startRecording(): Promise; stopRecording(): Promise; pauseRecording(): void; resumeRecording(): void; uploadRecording(file: Blob, metadata?: Record): Promise; retryUpload(trackingId: string): Promise; cancelUpload(trackingId: string): Promise; onProgress(callback: (progress: ProgressEvent) => void): void; onComplete(callback: (result: ProcessingResult) => void): void; onError(callback: (error: ErrorEvent) => void): void; getUploadStatus(trackingId: string): Promise; listRecordings(userId?: string): Promise; getRecordingState(): ReturnType; /** * Records video and automatically uploads when complete. * Uses the existing event system for progress tracking and completion. */ recordAndUpload(metadata?: Record): 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; } //# sourceMappingURL=VideoRecorder.d.ts.map