import type { CameraRecordingConfiguration } from "homebridge";
import type { ProtectCameraHost } from "./camera-host.ts";
import { ProtectTimeshiftBuffer } from "./timeshift.ts";
export interface RecordingDemand {
    config: CameraRecordingConfiguration | undefined;
    isRecording: boolean;
}
export declare class ProtectTimeshiftSupervisor {
    readonly buffer: ProtectTimeshiftBuffer;
    private configurePromise?;
    private configureRequested;
    protected deferralResolutionPending: boolean;
    private demand;
    private hasAcknowledgedRecording;
    private hasReportedSelectionFailure;
    private isShutdown;
    private readonly log;
    private readonly protectCamera;
    private wasDeferredOffline;
    private wasDeferredWhileInduced;
    constructor(protectCamera: ProtectCameraHost);
    setRecordingDemand(demand: RecordingDemand): Promise<boolean>;
    reconcile(): Promise<boolean>;
    private runReconcileLoop;
    protected onReconcileLoopExit(): void;
    protected onStartSettled(): void;
    private runReconcilePass;
    shutdown(): void;
}
//# sourceMappingURL=timeshift-supervisor.d.ts.map