import { RecordRTCPromisesHandler } from "recordrtc"; import { ProctoringSession } from "../proctoring/ProctoringSession"; import { IRecorder } from "./IRecorder"; import { BackendService } from "../backend/BackendService"; import { UploadService } from "../upload/UploadService"; import IParamsConfig from "../../interfaces/ParamsConfig"; import { ProctoringVideoOptions } from "../../proctoring/options/ProctoringVideoOptions"; import { DevicesChanged } from "../../interfaces/Devices"; import { ObjectDetection } from "../../modules/objectDetection"; import { FaceDetection } from "../../modules/faceDetection"; export declare class CameraRecorder implements IRecorder { private blobs; private paramsConfig; private options; private videoOptions; private blobsRTC; recorder: RecordRTCPromisesHandler; cameraStream: MediaStream; imageCount: number; imageCapture: any; imageInterval: any; sendFrameInterval: any; backend: BackendService | undefined; backendToken: string | undefined; proctoringId: string | undefined; private recorderOptions; upload: UploadService | undefined; video: HTMLVideoElement; canvas: HTMLCanvasElement; faceDetection: FaceDetection; objectDetection: ObjectDetection; filesToUpload: File[]; private intervalNoiseDetection; private volumeMeter; private animationFrameId; private isCanvasLoopActive; private hardwareStream; private internalClonedStream; constructor(options: { cameraId?: string; microphoneId?: string; onBufferSizeError?: boolean; onBufferSizeErrorCallback: (cameraStream?: any) => void; proctoringType?: "VIDEO" | "IMAGE" | "REALTIME"; onChangeDevicesCallback?: (devices: DevicesChanged) => void; onRealtimeAlertsCallback?: (response: any) => void; }, videoOptions: ProctoringVideoOptions, paramsConfig?: IParamsConfig, backend?: BackendService, backendToken?: string); file?: File; recordingStart: () => any; recordingStop: () => any; recordingPause: () => any; recordingResume: () => any; getBufferSize: () => any; setProctoringId(proctoringId: string): void; initializeDetectors(): Promise; configImageCapture(): void; currentRetries: number; bufferError(e: any): Promise; startRecording(options?: { retry?: boolean; }): Promise; stopRecording(): Promise; pauseRecording(): Promise; resumeRecording(): Promise; photoShotsCycle(): void; getCurrentImageBase64(): Promise; packageCount: number; captureFrame(): void; sendPackage(framesToSend: File[]): Promise; download(file: File): void; saveOnSession(session: ProctoringSession): Promise; getFile(file: string, name: string, type: string): Promise; noiseWait: number; private onNoiseDetected; private createRotatedStream; }