import { CaptureBuilder, CapturingStatusEnum } from './capture';
import type { MaxRecordableTimeEnum, VideoFileFormatEnum } from '../theta-repository/options';
import { NotifyController } from '../theta-repository/notify-controller';
/**
 * VideoCapture class
 */
export declare class VideoCapture {
    notify: NotifyController;
    constructor(notify: NotifyController);
    /**
     * start video capture
     * @param onStopFailed the block for error of stopCapture
     * @param onCapturing Called when change capture status
     * @param onCaptureStarted Called when capture started
     * @return promise of captured file url
     */
    startCapture(onStopFailed?: (error: any) => void, onCapturing?: (status: CapturingStatusEnum) => void, onCaptureStarted?: (fileUrl?: string) => void): Promise<string | undefined>;
    /**
     * stop video capture
     */
    stopCapture(): void;
}
/**
 * VideoCaptureBuilder class
 */
export declare class VideoCaptureBuilder extends CaptureBuilder<VideoCaptureBuilder> {
    interval?: number;
    /** construct VideoCaptureBuilder instance */
    constructor();
    /**
     * set interval of checking continuous shooting status command
     * @param timeMillis interval
     * @returns VideoCaptureBuilder
     */
    setCheckStatusCommandInterval(timeMillis: number): VideoCaptureBuilder;
    /**
     * Set video file format.
     * @param {VideoFileFormatEnum} fileFormat Video file format to set
     * @return VideoCaptureBuilder
     */
    setFileFormat(fileFormat: VideoFileFormatEnum): VideoCaptureBuilder;
    /**
     * Set maximum recordable time (in seconds) of the camera.
     * @param {MaxRecordableTimeEnum} time Maximum recordable time to set
     * @return VideoCaptureBuilder
     */
    setMaxRecordableTime(time: MaxRecordableTimeEnum): VideoCaptureBuilder;
    /**
     * Builds an instance of a VideoCapture that has all the combined
     * parameters of the Options that have been added to the Builder.
     *
     * @return promise of VideoCapture instance
     */
    build(): Promise<VideoCapture>;
}
//# sourceMappingURL=video-capture.d.ts.map