import { CaptureBuilder, CapturingStatusEnum } from './capture';
import type { TimeShiftIntervalEnum } from '../theta-repository/options';
import { NotifyController } from '../theta-repository/notify-controller';
/**
 * TimeShiftCapture class
 */
export declare class TimeShiftCapture {
    notify: NotifyController;
    constructor(notify: NotifyController);
    /**
     * start time-shift
     * @param onProgress the block for time-shift onProgress
     * @param onStopFailed the block for error of cancelCapture
     * @param onCapturing Called when change capture status
     * @return promise of captured file url
     */
    startCapture(onProgress?: (completion?: number) => void, onStopFailed?: (error: any) => void, onCapturing?: (status: CapturingStatusEnum) => void): Promise<string | undefined>;
    /**
     * cancel time-shift
     */
    cancelCapture(): Promise<any>;
}
/**
 * TimeShiftCaptureBuilder class
 */
export declare class TimeShiftCaptureBuilder extends CaptureBuilder<TimeShiftCaptureBuilder> {
    interval?: number;
    /** construct TimeShiftCaptureBuilder instance */
    constructor();
    /**
     * set interval of checking time-shift status command
     * @param timeMillis interval
     * @returns TimeShiftCaptureBuilder
     */
    setCheckStatusCommandInterval(timeMillis: number): TimeShiftCaptureBuilder;
    /**
     * Set is front first.
     * @param isFrontFirst is front first
     * @returns TimeShiftCaptureBuilder
     */
    setIsFrontFirst(isFrontFirst: boolean): TimeShiftCaptureBuilder;
    /**
     * set time (sec) before 1st lens shooting
     * @param interval 1st interval
     * @returns TimeShiftCaptureBuilder
     */
    setFirstInterval(interval: TimeShiftIntervalEnum): TimeShiftCaptureBuilder;
    /**
     * set time (sec) from 1st lens shooting until start of 2nd lens shooting.
     * @param interval 2nd interval
     * @returns TimeShiftCaptureBuilder
     */
    setSecondInterval(interval: TimeShiftIntervalEnum): TimeShiftCaptureBuilder;
    private checkAndInitTimeShiftSetting;
    /**
     * Builds an instance of a TimeShiftCapture that has all the combined
     * parameters of the Options that have been added to the Builder.
     *
     * @return promise of TimeShiftCapture instance
     */
    build(): Promise<TimeShiftCapture>;
}
//# sourceMappingURL=time-shift-capture.d.ts.map