import * as Schema from "effect/Schema";
import * as MobySchemas from "../schemas/index.js";
import * as ContainerLogConfig from "./ContainerLogConfig.generated.js";
import * as ContainerRestartPolicy from "./ContainerRestartPolicy.generated.js";
import * as Mount from "./Mount.generated.js";
declare const ContainerHostConfig_base: Schema.Class<ContainerHostConfig, {
    /** Mounts specs used by the container */
    Mounts: Schema.optionalWith<Schema.Array$<Schema.NullOr<typeof Mount.Mount>>, {
        nullable: true;
    }>;
    /**
     * MaskedPaths is the list of paths to be masked inside the container
     * (this overrides the default set of paths)
     */
    MaskedPaths: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /**
     * ReadonlyPaths is the list of paths to be set as read-only inside the
     * container (this overrides the default set of paths)
     */
    ReadonlyPaths: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /**
     * Run a custom init inside the container, if null, use the daemon's
     * configured settings
     */
    Init: Schema.optionalWith<typeof Schema.Boolean, {
        nullable: true;
    }>;
    CpuShares: MobySchemas.Int64Schemas.$Int64;
    Memory: MobySchemas.Int64Schemas.$Int64;
    NanoCpus: MobySchemas.Int64Schemas.$Int64;
    CgroupParent: typeof Schema.String;
    BlkioWeight: MobySchemas.UInt16Schemas.$UInt16;
    BlkioWeightDevice: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./WeightDevice.generated.js").WeightDevice>>>;
    BlkioDeviceReadBps: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ThrottleDevice.generated.js").ThrottleDevice>>>;
    BlkioDeviceWriteBps: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ThrottleDevice.generated.js").ThrottleDevice>>>;
    BlkioDeviceReadIOps: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ThrottleDevice.generated.js").ThrottleDevice>>>;
    BlkioDeviceWriteIOps: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ThrottleDevice.generated.js").ThrottleDevice>>>;
    CpuPeriod: MobySchemas.Int64Schemas.$Int64;
    CpuQuota: MobySchemas.Int64Schemas.$Int64;
    CpuRealtimePeriod: MobySchemas.Int64Schemas.$Int64;
    CpuRealtimeRuntime: MobySchemas.Int64Schemas.$Int64;
    CpusetCpus: typeof Schema.String;
    CpusetMems: typeof Schema.String;
    Devices: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ContainerDeviceMapping.generated.js").ContainerDeviceMapping>>>;
    DeviceCgroupRules: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    DeviceRequests: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ContainerDeviceRequest.generated.js").ContainerDeviceRequest>>>;
    KernelMemory: Schema.optional<MobySchemas.Int64Schemas.$Int64>;
    KernelMemoryTCP: Schema.optional<MobySchemas.Int64Schemas.$Int64>;
    MemoryReservation: MobySchemas.Int64Schemas.$Int64;
    MemorySwap: MobySchemas.Int64Schemas.$Int64;
    MemorySwappiness: Schema.NullOr<MobySchemas.Int64Schemas.$Int64>;
    OomKillDisable: Schema.NullOr<typeof Schema.Boolean>;
    PidsLimit: Schema.NullOr<MobySchemas.Int64Schemas.$Int64>;
    Ulimits: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ContainerUlimit.generated.js").ContainerUlimit>>>;
    CpuCount: MobySchemas.Int64Schemas.$Int64;
    CpuPercent: MobySchemas.Int64Schemas.$Int64;
    IOMaximumIOps: MobySchemas.UInt64Schemas.$UInt64;
    IOMaximumBandwidth: MobySchemas.UInt64Schemas.$UInt64;
    /** List of volume bindings for this container */
    Binds: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** File (path) where the containerId is written */
    ContainerIDFile: typeof Schema.String;
    /** Configuration of the logs for this container */
    LogConfig: Schema.NullOr<typeof ContainerLogConfig.ContainerLogConfig>;
    /** Network mode to use for the container */
    NetworkMode: Schema.Literal<["default", "none", "host", "bridge", "nat"]>;
    /** Port mapping between the exposed port (container) and the host */
    PortBindings: Schema.NullOr<MobySchemas.PortSchemas.$PortMap>;
    /** Restart policy to be used for the container */
    RestartPolicy: Schema.NullOr<typeof ContainerRestartPolicy.ContainerRestartPolicy>;
    /** Automatically remove container when it exits */
    AutoRemove: typeof Schema.Boolean;
    /** Name of the volume driver used to mount volumes */
    VolumeDriver: typeof Schema.String;
    /** List of volumes to take from other container */
    VolumesFrom: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** Initial console size (height,width) */
    ConsoleSize: Schema.filter<Schema.Array$<MobySchemas.UInt64Schemas.$UInt64>>;
    /**
     * Arbitrary non-identifying metadata attached to container and provided
     * to the runtime
     */
    Annotations: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.String>, {
        nullable: true;
    }>;
    /** List of kernel capabilities to add to the container */
    CapAdd: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** List of kernel capabilities to remove from the container */
    CapDrop: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** Cgroup namespace mode to use for the container */
    CgroupnsMode: Schema.Literal<["", "private", "host"]>;
    /** List of DNS servers for the container to use */
    Dns: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** List of DNS search domains */
    DnsOptions: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** List of DNS search domains */
    DnsSearch: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** List of extra hosts */
    ExtraHosts: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** List of additional groups that the container process will run as */
    GroupAdd: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** IPC namespace to use for the container */
    IpcMode: Schema.Literal<["none", "host", "container", "private", "shareable"]>;
    /** Cgroup to use for the container */
    Cgroup: typeof Schema.String;
    /** List of links (in the name:alias form) */
    Links: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** Container preference for OOM-killing */
    OomScoreAdj: MobySchemas.Int64Schemas.$Int64;
    /** PID namespace to use for the container */
    PidMode: typeof Schema.String;
    /** Is the container in privileged mode */
    Privileged: typeof Schema.Boolean;
    /** Should docker publish all exposed port for the container */
    PublishAllPorts: typeof Schema.Boolean;
    /** Is the container root filesystem in read-only */
    ReadonlyRootfs: typeof Schema.Boolean;
    /**
     * List of string values to customize labels for MLS systems, such as
     * SELinux.
     */
    SecurityOpt: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** Storage driver options per container. */
    StorageOpt: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.String>, {
        nullable: true;
    }>;
    /** List of tmpfs (mounts) used for the container */
    Tmpfs: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.String>, {
        nullable: true;
    }>;
    /** UTS namespace to use for the container */
    UTSMode: typeof Schema.String;
    /** The user namespace to use for the container */
    UsernsMode: typeof Schema.String;
    /** Total shm memory usage */
    ShmSize: MobySchemas.Int64Schemas.$Int64;
    /** List of Namespaced sysctls used for the container */
    Sysctls: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.String>, {
        nullable: true;
    }>;
    /** Runtime to use with this container */
    Runtime: Schema.optional<typeof Schema.String>;
    /** Isolation technology of the container (e.g. default, hyperv) */
    Isolation: Schema.Literal<["default", "process", "hyperv", ""]>;
}, Schema.Struct.Encoded<{
    /** Mounts specs used by the container */
    Mounts: Schema.optionalWith<Schema.Array$<Schema.NullOr<typeof Mount.Mount>>, {
        nullable: true;
    }>;
    /**
     * MaskedPaths is the list of paths to be masked inside the container
     * (this overrides the default set of paths)
     */
    MaskedPaths: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /**
     * ReadonlyPaths is the list of paths to be set as read-only inside the
     * container (this overrides the default set of paths)
     */
    ReadonlyPaths: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /**
     * Run a custom init inside the container, if null, use the daemon's
     * configured settings
     */
    Init: Schema.optionalWith<typeof Schema.Boolean, {
        nullable: true;
    }>;
    CpuShares: MobySchemas.Int64Schemas.$Int64;
    Memory: MobySchemas.Int64Schemas.$Int64;
    NanoCpus: MobySchemas.Int64Schemas.$Int64;
    CgroupParent: typeof Schema.String;
    BlkioWeight: MobySchemas.UInt16Schemas.$UInt16;
    BlkioWeightDevice: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./WeightDevice.generated.js").WeightDevice>>>;
    BlkioDeviceReadBps: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ThrottleDevice.generated.js").ThrottleDevice>>>;
    BlkioDeviceWriteBps: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ThrottleDevice.generated.js").ThrottleDevice>>>;
    BlkioDeviceReadIOps: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ThrottleDevice.generated.js").ThrottleDevice>>>;
    BlkioDeviceWriteIOps: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ThrottleDevice.generated.js").ThrottleDevice>>>;
    CpuPeriod: MobySchemas.Int64Schemas.$Int64;
    CpuQuota: MobySchemas.Int64Schemas.$Int64;
    CpuRealtimePeriod: MobySchemas.Int64Schemas.$Int64;
    CpuRealtimeRuntime: MobySchemas.Int64Schemas.$Int64;
    CpusetCpus: typeof Schema.String;
    CpusetMems: typeof Schema.String;
    Devices: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ContainerDeviceMapping.generated.js").ContainerDeviceMapping>>>;
    DeviceCgroupRules: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    DeviceRequests: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ContainerDeviceRequest.generated.js").ContainerDeviceRequest>>>;
    KernelMemory: Schema.optional<MobySchemas.Int64Schemas.$Int64>;
    KernelMemoryTCP: Schema.optional<MobySchemas.Int64Schemas.$Int64>;
    MemoryReservation: MobySchemas.Int64Schemas.$Int64;
    MemorySwap: MobySchemas.Int64Schemas.$Int64;
    MemorySwappiness: Schema.NullOr<MobySchemas.Int64Schemas.$Int64>;
    OomKillDisable: Schema.NullOr<typeof Schema.Boolean>;
    PidsLimit: Schema.NullOr<MobySchemas.Int64Schemas.$Int64>;
    Ulimits: Schema.NullOr<Schema.Array$<Schema.NullOr<typeof import("./ContainerUlimit.generated.js").ContainerUlimit>>>;
    CpuCount: MobySchemas.Int64Schemas.$Int64;
    CpuPercent: MobySchemas.Int64Schemas.$Int64;
    IOMaximumIOps: MobySchemas.UInt64Schemas.$UInt64;
    IOMaximumBandwidth: MobySchemas.UInt64Schemas.$UInt64;
    /** List of volume bindings for this container */
    Binds: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** File (path) where the containerId is written */
    ContainerIDFile: typeof Schema.String;
    /** Configuration of the logs for this container */
    LogConfig: Schema.NullOr<typeof ContainerLogConfig.ContainerLogConfig>;
    /** Network mode to use for the container */
    NetworkMode: Schema.Literal<["default", "none", "host", "bridge", "nat"]>;
    /** Port mapping between the exposed port (container) and the host */
    PortBindings: Schema.NullOr<MobySchemas.PortSchemas.$PortMap>;
    /** Restart policy to be used for the container */
    RestartPolicy: Schema.NullOr<typeof ContainerRestartPolicy.ContainerRestartPolicy>;
    /** Automatically remove container when it exits */
    AutoRemove: typeof Schema.Boolean;
    /** Name of the volume driver used to mount volumes */
    VolumeDriver: typeof Schema.String;
    /** List of volumes to take from other container */
    VolumesFrom: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** Initial console size (height,width) */
    ConsoleSize: Schema.filter<Schema.Array$<MobySchemas.UInt64Schemas.$UInt64>>;
    /**
     * Arbitrary non-identifying metadata attached to container and provided
     * to the runtime
     */
    Annotations: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.String>, {
        nullable: true;
    }>;
    /** List of kernel capabilities to add to the container */
    CapAdd: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** List of kernel capabilities to remove from the container */
    CapDrop: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** Cgroup namespace mode to use for the container */
    CgroupnsMode: Schema.Literal<["", "private", "host"]>;
    /** List of DNS servers for the container to use */
    Dns: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** List of DNS search domains */
    DnsOptions: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** List of DNS search domains */
    DnsSearch: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** List of extra hosts */
    ExtraHosts: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** List of additional groups that the container process will run as */
    GroupAdd: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** IPC namespace to use for the container */
    IpcMode: Schema.Literal<["none", "host", "container", "private", "shareable"]>;
    /** Cgroup to use for the container */
    Cgroup: typeof Schema.String;
    /** List of links (in the name:alias form) */
    Links: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** Container preference for OOM-killing */
    OomScoreAdj: MobySchemas.Int64Schemas.$Int64;
    /** PID namespace to use for the container */
    PidMode: typeof Schema.String;
    /** Is the container in privileged mode */
    Privileged: typeof Schema.Boolean;
    /** Should docker publish all exposed port for the container */
    PublishAllPorts: typeof Schema.Boolean;
    /** Is the container root filesystem in read-only */
    ReadonlyRootfs: typeof Schema.Boolean;
    /**
     * List of string values to customize labels for MLS systems, such as
     * SELinux.
     */
    SecurityOpt: Schema.NullOr<Schema.Array$<typeof Schema.String>>;
    /** Storage driver options per container. */
    StorageOpt: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.String>, {
        nullable: true;
    }>;
    /** List of tmpfs (mounts) used for the container */
    Tmpfs: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.String>, {
        nullable: true;
    }>;
    /** UTS namespace to use for the container */
    UTSMode: typeof Schema.String;
    /** The user namespace to use for the container */
    UsernsMode: typeof Schema.String;
    /** Total shm memory usage */
    ShmSize: MobySchemas.Int64Schemas.$Int64;
    /** List of Namespaced sysctls used for the container */
    Sysctls: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.String>, {
        nullable: true;
    }>;
    /** Runtime to use with this container */
    Runtime: Schema.optional<typeof Schema.String>;
    /** Isolation technology of the container (e.g. default, hyperv) */
    Isolation: Schema.Literal<["default", "process", "hyperv", ""]>;
}>, never, {
    readonly Links: readonly string[] | null;
} & {
    readonly Binds: readonly string[] | null;
} & {
    readonly ContainerIDFile: string;
} & {
    readonly LogConfig: ContainerLogConfig.ContainerLogConfig | null;
} & {
    readonly NetworkMode: "default" | "none" | "host" | "bridge" | "nat";
} & {
    readonly PortBindings: {
        readonly [x: `${number}`]: readonly {
            readonly HostIp?: string | undefined;
            readonly HostPort: string;
        }[];
        readonly [x: `${number}/tcp`]: readonly {
            readonly HostIp?: string | undefined;
            readonly HostPort: string;
        }[];
        readonly [x: `${number}/udp`]: readonly {
            readonly HostIp?: string | undefined;
            readonly HostPort: string;
        }[];
    } | null;
} & {
    readonly RestartPolicy: ContainerRestartPolicy.ContainerRestartPolicy | null;
} & {
    readonly AutoRemove: boolean;
} & {
    readonly VolumeDriver: string;
} & {
    readonly VolumesFrom: readonly string[] | null;
} & {
    readonly ConsoleSize: readonly MobySchemas.UInt64Schemas.UInt64Brand[];
} & {
    readonly Annotations?: {
        readonly [x: string]: string;
    } | undefined;
} & {
    readonly CapAdd: readonly string[] | null;
} & {
    readonly CapDrop: readonly string[] | null;
} & {
    readonly CgroupnsMode: "" | "private" | "host";
} & {
    readonly Dns: readonly string[] | null;
} & {
    readonly DnsOptions: readonly string[] | null;
} & {
    readonly DnsSearch: readonly string[] | null;
} & {
    readonly ExtraHosts: readonly string[] | null;
} & {
    readonly GroupAdd: readonly string[] | null;
} & {
    readonly IpcMode: "private" | "none" | "host" | "container" | "shareable";
} & {
    readonly Cgroup: string;
} & {
    readonly OomScoreAdj: MobySchemas.Int64Schemas.Int64Brand;
} & {
    readonly PidMode: string;
} & {
    readonly Privileged: boolean;
} & {
    readonly PublishAllPorts: boolean;
} & {
    readonly ReadonlyRootfs: boolean;
} & {
    readonly SecurityOpt: readonly string[] | null;
} & {
    readonly StorageOpt?: {
        readonly [x: string]: string;
    } | undefined;
} & {
    readonly Tmpfs?: {
        readonly [x: string]: string;
    } | undefined;
} & {
    readonly UTSMode: string;
} & {
    readonly UsernsMode: string;
} & {
    readonly ShmSize: MobySchemas.Int64Schemas.Int64Brand;
} & {
    readonly Sysctls?: {
        readonly [x: string]: string;
    } | undefined;
} & {
    readonly Runtime?: string | undefined;
} & {
    readonly Isolation: "" | "default" | "process" | "hyperv";
} & {
    readonly CpuShares: MobySchemas.Int64Schemas.Int64Brand;
} & {
    readonly Memory: MobySchemas.Int64Schemas.Int64Brand;
} & {
    readonly NanoCpus: MobySchemas.Int64Schemas.Int64Brand;
} & {
    readonly CgroupParent: string;
} & {
    readonly BlkioWeight: MobySchemas.UInt16Schemas.UInt16Brand;
} & {
    readonly BlkioWeightDevice: readonly (import("./WeightDevice.generated.js").WeightDevice | null)[] | null;
} & {
    readonly BlkioDeviceReadBps: readonly (import("./ThrottleDevice.generated.js").ThrottleDevice | null)[] | null;
} & {
    readonly BlkioDeviceWriteBps: readonly (import("./ThrottleDevice.generated.js").ThrottleDevice | null)[] | null;
} & {
    readonly BlkioDeviceReadIOps: readonly (import("./ThrottleDevice.generated.js").ThrottleDevice | null)[] | null;
} & {
    readonly BlkioDeviceWriteIOps: readonly (import("./ThrottleDevice.generated.js").ThrottleDevice | null)[] | null;
} & {
    readonly CpuPeriod: MobySchemas.Int64Schemas.Int64Brand;
} & {
    readonly CpuQuota: MobySchemas.Int64Schemas.Int64Brand;
} & {
    readonly CpuRealtimePeriod: MobySchemas.Int64Schemas.Int64Brand;
} & {
    readonly CpuRealtimeRuntime: MobySchemas.Int64Schemas.Int64Brand;
} & {
    readonly CpusetCpus: string;
} & {
    readonly CpusetMems: string;
} & {
    readonly Devices: readonly (import("./ContainerDeviceMapping.generated.js").ContainerDeviceMapping | null)[] | null;
} & {
    readonly DeviceCgroupRules: readonly string[] | null;
} & {
    readonly DeviceRequests: readonly (import("./ContainerDeviceRequest.generated.js").ContainerDeviceRequest | null)[] | null;
} & {
    readonly KernelMemory?: MobySchemas.Int64Schemas.Int64Brand | undefined;
} & {
    readonly KernelMemoryTCP?: MobySchemas.Int64Schemas.Int64Brand | undefined;
} & {
    readonly MemoryReservation: MobySchemas.Int64Schemas.Int64Brand;
} & {
    readonly MemorySwap: MobySchemas.Int64Schemas.Int64Brand;
} & {
    readonly MemorySwappiness: MobySchemas.Int64Schemas.Int64Brand | null;
} & {
    readonly OomKillDisable: boolean | null;
} & {
    readonly PidsLimit: MobySchemas.Int64Schemas.Int64Brand | null;
} & {
    readonly Ulimits: readonly (import("./ContainerUlimit.generated.js").ContainerUlimit | null)[] | null;
} & {
    readonly CpuCount: MobySchemas.Int64Schemas.Int64Brand;
} & {
    readonly CpuPercent: MobySchemas.Int64Schemas.Int64Brand;
} & {
    readonly IOMaximumIOps: MobySchemas.UInt64Schemas.UInt64Brand;
} & {
    readonly IOMaximumBandwidth: MobySchemas.UInt64Schemas.UInt64Brand;
} & {
    readonly Mounts?: readonly (Mount.Mount | null)[] | undefined;
} & {
    readonly MaskedPaths: readonly string[] | null;
} & {
    readonly ReadonlyPaths: readonly string[] | null;
} & {
    readonly Init?: boolean | undefined;
}, {}, {}>;
export declare class ContainerHostConfig extends ContainerHostConfig_base {
}
export {};
//# sourceMappingURL=ContainerHostConfig.generated.d.ts.map