import { ResourceBase, ResourceTag as Inner_ResourceTag } from "../../resource";
import { Value, List } from "../../data-types";
export declare class DeploymentConfiguration {
    MaximumPercent?: Value<number>;
    MinimumHealthyPercent?: Value<number>;
    constructor(properties: DeploymentConfiguration);
}
export declare class ServiceRegistry {
    ContainerName?: Value<string>;
    ContainerPort?: Value<number>;
    Port?: Value<number>;
    RegistryArn?: Value<string>;
    constructor(properties: ServiceRegistry);
}
export declare class PlacementStrategy {
    Field?: Value<string>;
    Type: Value<string>;
    constructor(properties: PlacementStrategy);
}
export declare class LoadBalancer {
    ContainerName?: Value<string>;
    ContainerPort: Value<number>;
    LoadBalancerName?: Value<string>;
    TargetGroupArn?: Value<string>;
    constructor(properties: LoadBalancer);
}
export declare class PlacementConstraint {
    Expression?: Value<string>;
    Type: Value<string>;
    constructor(properties: PlacementConstraint);
}
export declare class DeploymentController {
    Type?: Value<string>;
    constructor(properties: DeploymentController);
}
export declare class AwsVpcConfiguration {
    AssignPublicIp?: Value<string>;
    SecurityGroups?: List<Value<string>>;
    Subnets: List<Value<string>>;
    constructor(properties: AwsVpcConfiguration);
}
export declare class NetworkConfiguration {
    AwsvpcConfiguration?: AwsVpcConfiguration;
    constructor(properties: NetworkConfiguration);
}
export interface ServiceProperties {
    ServiceName?: Value<string>;
    DeploymentController?: DeploymentController;
    PropagateTags?: Value<string>;
    PlatformVersion?: Value<string>;
    EnableECSManagedTags?: Value<boolean>;
    SchedulingStrategy?: Value<string>;
    NetworkConfiguration?: NetworkConfiguration;
    LaunchType?: Value<string>;
    ServiceRegistries?: List<ServiceRegistry>;
    DeploymentConfiguration?: DeploymentConfiguration;
    PlacementConstraints?: List<PlacementConstraint>;
    HealthCheckGracePeriodSeconds?: Value<number>;
    DesiredCount?: Value<number>;
    Role?: Value<string>;
    PlacementStrategies?: List<PlacementStrategy>;
    LoadBalancers?: List<LoadBalancer>;
    TaskDefinition?: Value<string>;
    Tags?: List<Inner_ResourceTag>;
    Cluster?: Value<string>;
}
export default class Inner_Service extends ResourceBase<ServiceProperties> {
    static DeploymentConfiguration: typeof DeploymentConfiguration;
    static ServiceRegistry: typeof ServiceRegistry;
    static PlacementStrategy: typeof PlacementStrategy;
    static LoadBalancer: typeof LoadBalancer;
    static PlacementConstraint: typeof PlacementConstraint;
    static DeploymentController: typeof DeploymentController;
    static AwsVpcConfiguration: typeof AwsVpcConfiguration;
    static NetworkConfiguration: typeof NetworkConfiguration;
    constructor(properties: ServiceProperties);
}
