import type { ProviderObservation, ReconcileRequest, WorkspaceProvider } from "@awp/application";
import { type ProviderDescriptor, type ProviderOperationContext, type ProviderResult, type WorkspaceId } from "@awp/contracts";
import type { KubernetesTransport } from "./kubernetes.js";
import type { WorkspaceProfileRegistry } from "./profile.js";
export interface WorkspaceCheckpoint {
    readonly workspaceId: WorkspaceId;
    readonly pvcName: string;
    readonly pvcUid: string;
    readonly resourceVersion: string;
    readonly digest: string;
    readonly observedAt: string;
}
export declare class KubernetesWorkspaceProvider implements WorkspaceProvider {
    private readonly kubernetes;
    private readonly profiles;
    private readonly now;
    constructor(kubernetes: KubernetesTransport, profiles: WorkspaceProfileRegistry, now?: () => string);
    describe(): Promise<ProviderDescriptor>;
    create(_context: ProviderOperationContext, workspaceId: WorkspaceId, profileKey: string): Promise<ProviderResult<ProviderObservation>>;
    destroy(_context: ProviderOperationContext, workspaceId: WorkspaceId): Promise<ProviderResult<ProviderObservation>>;
    reconcile(request: ReconcileRequest): Promise<ProviderResult<ProviderObservation>>;
    replaceCompute(workspaceId: WorkspaceId, profileKey: string): Promise<ProviderResult<ProviderObservation>>;
    checkpoint(workspaceId: WorkspaceId, profileKey: string): Promise<WorkspaceCheckpoint>;
    cleanupCheckpoint(workspaceId: WorkspaceId, profileKey: string, expectedDigest: string, collected: boolean): Promise<void>;
    private workspaceResult;
    private findWorkspace;
    private allProfiles;
    private profileForNamespace;
    private deleteIfPresent;
    private absentResult;
}
//# sourceMappingURL=adapter.d.ts.map