import type { ControlPlaneStore } from '../control-plane';
import type { CleanupCandidate, CleanupDriver, CleanupPlan, DisasterRecoveryDrill, DisasterRecoveryDriver, PlatformMaintenanceDriver, PlatformUpdateDocument, UpgradeTarget } from './types';
export interface PlatformMaintenanceTransport {
    download(input: {
        target: string;
        url: string;
        signal: AbortSignal;
    }): Promise<{
        path: string;
        sha256: string;
    }>;
    install(input: {
        target: string;
        path: string;
        version: string;
        signal: AbortSignal;
    }): Promise<void>;
    health(input: {
        target: string;
        gate: Record<string, unknown>;
    }): Promise<{
        healthy: boolean;
        evidence: Record<string, any>;
    }>;
    rollback(input: {
        target: string;
        version: string;
        signal: AbortSignal;
    }): Promise<void>;
}
export declare class TransportPlatformMaintenanceDriver implements PlatformMaintenanceDriver {
    private transport;
    constructor(transport: PlatformMaintenanceTransport);
    download(input: {
        target: UpgradeTarget;
        artifact: PlatformUpdateDocument['artifacts'][number];
        signal: AbortSignal;
    }): Promise<{
        path: string;
        sha256: string;
    }>;
    install(input: {
        target: UpgradeTarget;
        path: string;
        version: string;
        signal: AbortSignal;
    }): Promise<void>;
    health(input: {
        target: UpgradeTarget;
        gate: Record<string, any>;
    }): Promise<{
        healthy: boolean;
        evidence: Record<string, any>;
    }>;
    rollback(input: {
        target: UpgradeTarget;
        version: string;
        signal: AbortSignal;
    }): Promise<void>;
}
export declare class ControlPlaneCleanupDriver implements CleanupDriver {
    readonly kind: CleanupPlan['kind'];
    private control;
    private projectId;
    private organizationId;
    constructor(kind: CleanupPlan['kind'], control: ControlPlaneStore, projectId: string, organizationId: string);
    discover(criteria: CleanupPlan['criteria']): Promise<CleanupCandidate[]>;
    remove(candidate: CleanupCandidate): Promise<void>;
}
export interface DisasterRecoveryTransport {
    restore(input: {
        scenario: DisasterRecoveryDrill['scenario'];
        drill: DisasterRecoveryDrill;
        signal: AbortSignal;
    }): Promise<{
        target: string;
        recoveryPointAt: string;
        evidence: Record<string, any>;
    }>;
    verify(input: {
        scenario: DisasterRecoveryDrill['scenario'];
        drill: DisasterRecoveryDrill;
        target: string;
    }): Promise<{
        healthy: boolean;
        evidence: Record<string, any>;
    }>;
    cleanup(input: {
        scenario: DisasterRecoveryDrill['scenario'];
        drill: DisasterRecoveryDrill;
        target: string;
    }): Promise<void>;
}
export declare class TransportDisasterRecoveryDriver implements DisasterRecoveryDriver {
    readonly scenario: DisasterRecoveryDrill['scenario'];
    private transport;
    constructor(scenario: DisasterRecoveryDrill['scenario'], transport: DisasterRecoveryTransport);
    restore(input: {
        drill: DisasterRecoveryDrill;
        signal: AbortSignal;
    }): Promise<{
        target: string;
        recoveryPointAt: string;
        evidence: Record<string, any>;
    }>;
    verify(input: {
        drill: DisasterRecoveryDrill;
        target: string;
    }): Promise<{
        healthy: boolean;
        evidence: Record<string, any>;
    }>;
    cleanup(input: {
        drill: DisasterRecoveryDrill;
        target: string;
    }): Promise<void>;
}
