import { Component, Event } from '@zcomponent/core'; import { ContextManager } from '@zcomponent/core'; import { Observable } from '@zcomponent/core'; import { MediaRecorder } from '@zappar/mediarecorder'; export declare enum VideoRecorderStatus { 'idle' = 0, 'starting' = 1, 'recording' = 2, 'stopping' = 3 } /** * @zcomponent * @zicon screen_record * @zgroup Advanced */ export declare class VideoRecorder extends Component { onMicrophoneError: Event<[DOMException]>; /** * @zui * @zgroup Animations * @zgrouppriority 20 * @zvalues layerclipids */ idleLayerClip: Observable; /** * @zui * @zgroup Animations * @zgrouppriority 20 * @zvalues layerclipids */ startingLayerClip: Observable; /** * @zui * @zgroup Animations * @zgrouppriority 20 * @zvalues layerclipids */ recordingLayerClip: Observable; /** * @zui * @zgroup Animations * @zgrouppriority 20 * @zvalues layerclipids */ stoppingLayerClip: Observable; /** * @zui * @zgroup Animations * @zgrouppriority 20 * @zvalues layerclipids */ hasResultLayerClip: Observable; /** * The type of video file to be recorded. For compatibility with the widest range of devices, both in terms of recording and playback, we recommend `video/mp4`. * * @zui * @zgroup VideoRecorder Advanced * @zgrouppriority 10 * @zdefault video/mp4 */ mimeType: Observable; /** * The number of frames per second that will be recorded from the canvas. * * @zui * @zgroup VideoRecorder Advanced * @zgrouppriority 10 * @zdefault 30 */ frameRate: Observable; /** * The maximum length, in milliseconds, to allow the user to record. * * @zui * @zgroup VideoRecorder * @zgrouppriority 30 */ maxLength: Observable; protected _requestAudioPermission: () => Promise; /** * If true, audio from the user's microphone will be included in the recording. * When this parameter is set to true, VideoRecorder will request permission from the user to record the microphone. * * @zui * @zgroup VideoRecorder * @zgrouppriority 30 * @zdefault false */ recordMicrophone: Observable; /** * If true, experience audio will be included in the recording. * * @zui * @zgroup VideoRecorder * @zgrouppriority 30 * @zdefault true */ recordAudioLayers: Observable; /** * If `recordAudioLayers` is true, this parameter determines which audio layers are included in the recording. * If the value is empty, all layers are recorded with the exception of `video-recorder-ui-effects`. * * @zui * @zgroup VideoRecorder Advanced * @zgrouppriority 10 * @zdefault [] */ audioLayersToRecord: Observable; result?: Blob; recorder?: MediaRecorder; status: Observable; length: Observable; private _recordingStartTime; private _captureStream?; constructor(contextManager: ContextManager, props: {}); /** @zui */ start(): Promise; private _frame; /** @zui */ stop(): void; protected _playLayerClip(id: Observable): void; }