import type { ControlPlaneOperation } from '../control-plane';
import type { CleanupDriver, CleanupPlan, DisasterRecoveryDrill, MaintenanceWindow, UpgradeCampaign } from './types';
import { DurableOperationQueue } from '../queue';
import { MaintenanceStore } from './store';
export declare function maintenanceWindowOpen(window: MaintenanceWindow, now?: Date): boolean;
export declare class MaintenanceService {
    readonly store: MaintenanceStore;
    private now;
    readonly queue: DurableOperationQueue;
    constructor(store: MaintenanceStore, queue?: DurableOperationQueue, now?: () => Date);
    enqueueCampaign(id: string, input?: {
        approvedBy?: string;
        overrideWindow?: boolean;
    }): {
        campaign: UpgradeCampaign;
        operation: ControlPlaneOperation;
    };
    previewCleanup(input: {
        projectId: string;
        kind: CleanupPlan['kind'];
        criteria: CleanupPlan['criteria'];
    }, drivers: readonly CleanupDriver[]): Promise<CleanupPlan>;
    enqueueCleanup(id: string, confirmation: string): {
        plan: CleanupPlan;
        operation: ControlPlaneOperation;
    };
    enqueueDrill(id: string): {
        drill: DisasterRecoveryDrill;
        operation: ControlPlaneOperation;
    };
}
