import { CaptureBuilder, CapturingStatusEnum } from './capture';
import type { TimeShiftIntervalEnum } from '../theta-repository/options';
import { NotifyController } from '../theta-repository/notify-controller';
/**
 * TimeShiftManualCapture class
 */
export declare class TimeShiftManualCapture {
    notify: NotifyController;
    constructor(notify: NotifyController);
    /**
     * start manual time-shift
     *
     * Later, need to call startSecondCapture() or cancelCapture()
     *
     * @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 manual time-shift
     */
    startSecondCapture(): Promise<any>;
    /**
     * cancel manual time-shift
     */
    cancelCapture(): Promise<any>;
}
/**
 * TimeShiftManualCaptureBuilder class
 */
export declare class TimeShiftManualCaptureBuilder extends CaptureBuilder<TimeShiftManualCaptureBuilder> {
    interval?: number;
    /** construct TimeShiftManualCaptureBuilder instance */
    constructor();
    /**
     * set interval of checking time-shift status command
     * @param timeMillis interval
     * @returns TimeShiftManualCaptureBuilder
     */
    setCheckStatusCommandInterval(timeMillis: number): TimeShiftManualCaptureBuilder;
    /**
     * Set is front first.
     * @param isFrontFirst is front first
     * @returns TimeShiftManualCaptureBuilder
     */
    setIsFrontFirst(isFrontFirst: boolean): TimeShiftManualCaptureBuilder;
    /**
     * set time (sec) before 1st lens shooting
     * @param interval 1st interval
     * @returns TimeShiftManualCaptureBuilder
     */
    setFirstInterval(interval: TimeShiftIntervalEnum): TimeShiftManualCaptureBuilder;
    /**
     * set time (sec) from 1st lens shooting until start of 2nd lens shooting.
     * @param interval 2nd interval
     * @returns TimeShiftManualCaptureBuilder
     */
    setSecondInterval(interval: TimeShiftIntervalEnum): TimeShiftManualCaptureBuilder;
    private checkAndInitTimeShiftSetting;
    /**
     * Builds an instance of a TimeShiftManualCapture that has all the combined
     * parameters of the Options that have been added to the Builder.
     *
     * @return promise of TimeShiftManualCapture instance
     */
    build(): Promise<TimeShiftManualCapture>;
}
//# sourceMappingURL=time-shift-manual-capture.d.ts.map