import { ResourcesSpec } from "@k8ts/instruments";
import { Prefix$ } from "../../../_type/prefix$";
import { External } from "../../../external";
import { api } from "../../../kinds";
import { ManifestResource } from "../../../node";
import { Access } from "../access-mode";
import type { DataMode } from "../block-mode";
import { Pv } from "../volume";
export type Pvc<T extends DataMode = DataMode> = Pvc.Pvc<T>;
export declare namespace Pvc {
    const pvc_ResourcesSpec: ResourcesSpec<{
        readonly storage: "M" | "G" | "T" | "K" | "Mi" | "Gi" | "Ki";
    }>;
    type PvcResourceSpec = typeof pvc_ResourcesSpec;
    type PvcResources = Prefix$<PvcResourceSpec["__INPUT__"]>;
    export interface Props<Mode extends DataMode> extends PvcResources {
        $accessModes: Access;
        $mode?: Mode;
        $storageClass?: External<api.storage_.v1_.StorageClass>;
        $bind?: Pv.AbsPv<Mode>;
    }
    export class Pvc<Mode extends DataMode = DataMode> extends ManifestResource<Props<Mode>> {
        kind: import("@k8ts/instruments").Kind.Kind<"PersistentVolumeClaim", import("@k8ts/instruments").Kind.Version<"v1", import("@k8ts/instruments").Kind.Group<"">>>;
        get bound(): Pv<Mode>;
    }
    export {};
}
//# sourceMappingURL=pvc.d.ts.map