import * as Schema from "effect/Schema";
import * as SwarmEndpointSpec from "./SwarmEndpointSpec.generated.js";
import * as SwarmNetworkAttachmentConfig from "./SwarmNetworkAttachmentConfig.generated.js";
import * as SwarmServiceMode from "./SwarmServiceMode.generated.js";
import * as SwarmTaskSpec from "./SwarmTaskSpec.generated.js";
import * as SwarmUpdateConfig from "./SwarmUpdateConfig.generated.js";
declare const SwarmServiceSpec_base: Schema.Class<SwarmServiceSpec, {
    TaskTemplate: Schema.optionalWith<typeof SwarmTaskSpec.SwarmTaskSpec, {
        nullable: true;
    }>;
    Mode: Schema.optionalWith<typeof SwarmServiceMode.SwarmServiceMode, {
        nullable: true;
    }>;
    UpdateConfig: Schema.optionalWith<typeof SwarmUpdateConfig.SwarmUpdateConfig, {
        nullable: true;
    }>;
    RollbackConfig: Schema.optionalWith<typeof SwarmUpdateConfig.SwarmUpdateConfig, {
        nullable: true;
    }>;
    Networks: Schema.optionalWith<Schema.Array$<Schema.NullOr<typeof SwarmNetworkAttachmentConfig.SwarmNetworkAttachmentConfig>>, {
        nullable: true;
    }>;
    EndpointSpec: Schema.optionalWith<typeof SwarmEndpointSpec.SwarmEndpointSpec, {
        nullable: true;
    }>;
    Name: Schema.optional<typeof Schema.String>;
    Labels: Schema.NullOr<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
}, Schema.Struct.Encoded<{
    TaskTemplate: Schema.optionalWith<typeof SwarmTaskSpec.SwarmTaskSpec, {
        nullable: true;
    }>;
    Mode: Schema.optionalWith<typeof SwarmServiceMode.SwarmServiceMode, {
        nullable: true;
    }>;
    UpdateConfig: Schema.optionalWith<typeof SwarmUpdateConfig.SwarmUpdateConfig, {
        nullable: true;
    }>;
    RollbackConfig: Schema.optionalWith<typeof SwarmUpdateConfig.SwarmUpdateConfig, {
        nullable: true;
    }>;
    Networks: Schema.optionalWith<Schema.Array$<Schema.NullOr<typeof SwarmNetworkAttachmentConfig.SwarmNetworkAttachmentConfig>>, {
        nullable: true;
    }>;
    EndpointSpec: Schema.optionalWith<typeof SwarmEndpointSpec.SwarmEndpointSpec, {
        nullable: true;
    }>;
    Name: Schema.optional<typeof Schema.String>;
    Labels: Schema.NullOr<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
}>, never, {
    readonly Name?: string | undefined;
} & {
    readonly Labels: {
        readonly [x: string]: string;
    } | null;
} & {
    readonly Mode?: SwarmServiceMode.SwarmServiceMode | undefined;
} & {
    readonly Networks?: readonly (SwarmNetworkAttachmentConfig.SwarmNetworkAttachmentConfig | null)[] | undefined;
} & {
    readonly TaskTemplate?: SwarmTaskSpec.SwarmTaskSpec | undefined;
} & {
    readonly UpdateConfig?: SwarmUpdateConfig.SwarmUpdateConfig | undefined;
} & {
    readonly RollbackConfig?: SwarmUpdateConfig.SwarmUpdateConfig | undefined;
} & {
    readonly EndpointSpec?: SwarmEndpointSpec.SwarmEndpointSpec | undefined;
}, {}, {}>;
export declare class SwarmServiceSpec extends SwarmServiceSpec_base {
}
export {};
//# sourceMappingURL=SwarmServiceSpec.generated.d.ts.map