import { KubernetesService } from '../../../infrastructure/shared/services/kubernetes.service';
import { CreatePvcFromSnapshotInput, CreateSnapshotInput, DeleteSnapshotInput, IVolumeOperations, ListSnapshotsInput, SnapshotResult, SnapshotSummary, VolumeOperationsCapabilities } from '../../interfaces/volume-operations.interface';
/**
 * Hetzner does not expose volume snapshots or volume cloning at the API level
 * (https://docs.hetzner.com/cloud/volumes/, https://github.com/hetznercloud/csi-driver/issues/88).
 * To honor the IVolumeOperations contract on Hetzner we implement "snapshot"
 * as a labeled PVC clone built via the copy-pod pattern: a Job that mounts
 * source + destination PVC on the same node and tars data across.
 *
 * Cost note: each "snapshot" on Hetzner is a full Volume billed at the
 * standard volume rate (€0.057/GB-mo, 10 GB minimum). The capabilities
 * surface this so the CLI/cost estimator can warn users.
 */
export declare class HetznerVolumeOperationsService implements IVolumeOperations {
    private readonly k8s;
    private readonly logger;
    readonly capabilities: VolumeOperationsCapabilities;
    constructor(k8s: KubernetesService);
    createSnapshot(input: CreateSnapshotInput): Promise<SnapshotResult>;
    deleteSnapshot(input: DeleteSnapshotInput): Promise<void>;
    listSnapshots(input: ListSnapshotsInput): Promise<SnapshotSummary[]>;
    createPvcFromSnapshot(input: CreatePvcFromSnapshotInput): Promise<{
        pvcName: string;
    }>;
    private cleanupCopyJob;
    private waitForJobCompletion;
    private renderPvcManifest;
    private renderCopyJobManifest;
    private parseStorageGb;
    private yamlString;
}
