import * as Schema from "effect/Schema";
import * as VolumeTypeBlock from "./VolumeTypeBlock.generated.js";
import * as VolumeTypeMount from "./VolumeTypeMount.generated.js";
declare const VolumeAccessMode_base: Schema.Class<VolumeAccessMode, {
    /**
     * Scope defines the set of nodes this volume can be used on at one
     * time.
     */
    Scope: Schema.optional<Schema.Literal<["single", "multi"]>>;
    /**
     * Sharing defines the number and way that different tasks can use this
     * volume at one time.
     */
    Sharing: Schema.optional<Schema.Literal<["none", "readonly", "onewriter", "all"]>>;
    /** MountVolume defines options for using this volume as a Mount-type */
    MountVolume: Schema.optionalWith<typeof VolumeTypeMount.VolumeTypeMount, {
        nullable: true;
    }>;
    /** BlockVolume defines options for using this volume as a Block-type */
    BlockVolume: Schema.optionalWith<typeof VolumeTypeBlock.VolumeTypeBlock, {
        nullable: true;
    }>;
}, Schema.Struct.Encoded<{
    /**
     * Scope defines the set of nodes this volume can be used on at one
     * time.
     */
    Scope: Schema.optional<Schema.Literal<["single", "multi"]>>;
    /**
     * Sharing defines the number and way that different tasks can use this
     * volume at one time.
     */
    Sharing: Schema.optional<Schema.Literal<["none", "readonly", "onewriter", "all"]>>;
    /** MountVolume defines options for using this volume as a Mount-type */
    MountVolume: Schema.optionalWith<typeof VolumeTypeMount.VolumeTypeMount, {
        nullable: true;
    }>;
    /** BlockVolume defines options for using this volume as a Block-type */
    BlockVolume: Schema.optionalWith<typeof VolumeTypeBlock.VolumeTypeBlock, {
        nullable: true;
    }>;
}>, never, {
    readonly Scope?: "single" | "multi" | undefined;
} & {
    readonly Sharing?: "none" | "readonly" | "onewriter" | "all" | undefined;
} & {
    readonly MountVolume?: VolumeTypeMount.VolumeTypeMount | undefined;
} & {
    readonly BlockVolume?: VolumeTypeBlock.VolumeTypeBlock | undefined;
}, {}, {}>;
export declare class VolumeAccessMode extends VolumeAccessMode_base {
}
export {};
//# sourceMappingURL=VolumeAccessMode.generated.d.ts.map