import * as core from "@terrascript/core";
export interface CapacityProviderStrategyArgs extends core.SchemaArgs {
    base?: number | core.NumberOut;
    capacityProvider: string | core.StringOut;
    weight?: number | core.NumberOut;
}
export declare class CapacityProviderStrategy extends core.Schema<CapacityProviderStrategyArgs> {
    base?: number | core.NumberOut;
    capacityProvider: string | core.StringOut;
    weight?: number | core.NumberOut;
}
export interface LoadBalancerArgs extends core.SchemaArgs {
    containerName: string | core.StringOut;
    containerPort: number | core.NumberOut;
    elbName?: string | core.StringOut;
    targetGroupArn?: string | core.StringOut;
}
export declare class LoadBalancer extends core.Schema<LoadBalancerArgs> {
    containerName: string | core.StringOut;
    containerPort: number | core.NumberOut;
    elbName?: string | core.StringOut;
    targetGroupArn?: string | core.StringOut;
}
export interface ServiceRegistriesArgs extends core.SchemaArgs {
    containerName?: string | core.StringOut;
    containerPort?: number | core.NumberOut;
    port?: number | core.NumberOut;
    registryArn: string | core.StringOut;
}
export declare class ServiceRegistries extends core.Schema<ServiceRegistriesArgs> {
    containerName?: string | core.StringOut;
    containerPort?: number | core.NumberOut;
    port?: number | core.NumberOut;
    registryArn: string | core.StringOut;
}
export interface DeploymentCircuitBreakerArgs extends core.SchemaArgs {
    enable: boolean | core.BooleanOut;
    rollback: boolean | core.BooleanOut;
}
export declare class DeploymentCircuitBreaker extends core.Schema<DeploymentCircuitBreakerArgs> {
    enable: boolean | core.BooleanOut;
    rollback: boolean | core.BooleanOut;
}
export interface PlacementConstraintsArgs extends core.SchemaArgs {
    expression?: string | core.StringOut;
    type: string | core.StringOut;
}
export declare class PlacementConstraints extends core.Schema<PlacementConstraintsArgs> {
    expression?: string | core.StringOut;
    type: string | core.StringOut;
}
export interface DeploymentControllerArgs extends core.SchemaArgs {
    type?: string | core.StringOut;
}
export declare class DeploymentController extends core.Schema<DeploymentControllerArgs> {
    type?: string | core.StringOut;
}
export interface NetworkConfigurationArgs extends core.SchemaArgs {
    assignPublicIp?: boolean | core.BooleanOut;
    securityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnets: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class NetworkConfiguration extends core.Schema<NetworkConfigurationArgs> {
    assignPublicIp?: boolean | core.BooleanOut;
    securityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnets: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface OrderedPlacementStrategyArgs extends core.SchemaArgs {
    field?: string | core.StringOut;
    type: string | core.StringOut;
}
export declare class OrderedPlacementStrategy extends core.Schema<OrderedPlacementStrategyArgs> {
    field?: string | core.StringOut;
    type: string | core.StringOut;
}
export interface ServiceArgs extends core.ResourceArgs {
    capacityProviderStrategy?: core.Array<CapacityProviderStrategy> | core.ArrayOut<CapacityProviderStrategy>;
    cluster?: string | core.StringOut;
    deploymentCircuitBreaker?: DeploymentCircuitBreaker;
    deploymentController?: DeploymentController;
    deploymentMaximumPercent?: number | core.NumberOut;
    deploymentMinimumHealthyPercent?: number | core.NumberOut;
    desiredCount?: number | core.NumberOut;
    enableEcsManagedTags?: boolean | core.BooleanOut;
    enableExecuteCommand?: boolean | core.BooleanOut;
    forceNewDeployment?: boolean | core.BooleanOut;
    healthCheckGracePeriodSeconds?: number | core.NumberOut;
    iamRole?: string | core.StringOut;
    launchType?: string | core.StringOut;
    loadBalancer?: core.Array<LoadBalancer> | core.ArrayOut<LoadBalancer>;
    name: string | core.StringOut;
    networkConfiguration?: NetworkConfiguration;
    orderedPlacementStrategy?: core.Array<OrderedPlacementStrategy> | core.ArrayOut<OrderedPlacementStrategy>;
    placementConstraints?: core.Array<PlacementConstraints> | core.ArrayOut<PlacementConstraints>;
    platformVersion?: string | core.StringOut;
    propagateTags?: string | core.StringOut;
    schedulingStrategy?: string | core.StringOut;
    serviceRegistries?: ServiceRegistries;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    taskDefinition?: string | core.StringOut;
    waitForSteadyState?: boolean | core.BooleanOut;
}
export declare class Service extends core.Resource<ServiceArgs> {
    capacityProviderStrategy?: core.Array<CapacityProviderStrategy> | core.ArrayOut<CapacityProviderStrategy>;
    cluster?: string | core.StringOut;
    deploymentCircuitBreaker?: DeploymentCircuitBreaker;
    deploymentController?: DeploymentController;
    deploymentMaximumPercent?: number | core.NumberOut;
    deploymentMinimumHealthyPercent?: number | core.NumberOut;
    desiredCount?: number | core.NumberOut;
    enableEcsManagedTags?: boolean | core.BooleanOut;
    enableExecuteCommand?: boolean | core.BooleanOut;
    forceNewDeployment?: boolean | core.BooleanOut;
    healthCheckGracePeriodSeconds?: number | core.NumberOut;
    iamRole?: string | core.StringOut;
    id: string | core.StringOut;
    launchType?: string | core.StringOut;
    loadBalancer?: core.Array<LoadBalancer> | core.ArrayOut<LoadBalancer>;
    name: string | core.StringOut;
    networkConfiguration?: NetworkConfiguration;
    orderedPlacementStrategy?: core.Array<OrderedPlacementStrategy> | core.ArrayOut<OrderedPlacementStrategy>;
    placementConstraints?: core.Array<PlacementConstraints> | core.ArrayOut<PlacementConstraints>;
    platformVersion?: string | core.StringOut;
    propagateTags?: string | core.StringOut;
    schedulingStrategy?: string | core.StringOut;
    serviceRegistries?: ServiceRegistries;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    taskDefinition?: string | core.StringOut;
    waitForSteadyState?: boolean | core.BooleanOut;
    constructor(name: string, args?: ServiceArgs);
    getNamespace(): string;
}
//# sourceMappingURL=service.d.ts.map