import * as core from "@terrascript/core";
export interface TriggerConfigurationArgs extends core.SchemaArgs {
    triggerEvents: core.Array<string> | core.ArrayOut<core.StringOut>;
    triggerName: string | core.StringOut;
    triggerTargetArn: string | core.StringOut;
}
export declare class TriggerConfiguration extends core.Schema<TriggerConfigurationArgs> {
    triggerEvents: core.Array<string> | core.ArrayOut<core.StringOut>;
    triggerName: string | core.StringOut;
    triggerTargetArn: string | core.StringOut;
}
export interface ElbInfoArgs extends core.SchemaArgs {
    name?: string | core.StringOut;
}
export declare class ElbInfo extends core.Schema<ElbInfoArgs> {
    name?: string | core.StringOut;
}
export interface TargetGroupInfoArgs extends core.SchemaArgs {
    name?: string | core.StringOut;
}
export declare class TargetGroupInfo extends core.Schema<TargetGroupInfoArgs> {
    name?: string | core.StringOut;
}
export interface TestTrafficRouteArgs extends core.SchemaArgs {
    listenerArns: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class TestTrafficRoute extends core.Schema<TestTrafficRouteArgs> {
    listenerArns: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface ProdTrafficRouteArgs extends core.SchemaArgs {
    listenerArns: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class ProdTrafficRoute extends core.Schema<ProdTrafficRouteArgs> {
    listenerArns: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface TargetGroupArgs extends core.SchemaArgs {
    name: string | core.StringOut;
}
export declare class TargetGroup extends core.Schema<TargetGroupArgs> {
    name: string | core.StringOut;
}
export interface TargetGroupPairInfoArgs extends core.SchemaArgs {
    prodTrafficRoute: ProdTrafficRoute;
    targetGroup: core.Array<TargetGroup> | core.ArrayOut<TargetGroup>;
    testTrafficRoute?: TestTrafficRoute;
}
export declare class TargetGroupPairInfo extends core.Schema<TargetGroupPairInfoArgs> {
    prodTrafficRoute: ProdTrafficRoute;
    targetGroup: core.Array<TargetGroup> | core.ArrayOut<TargetGroup>;
    testTrafficRoute?: TestTrafficRoute;
}
export interface LoadBalancerInfoArgs extends core.SchemaArgs {
    elbInfo?: core.Array<ElbInfo> | core.ArrayOut<ElbInfo>;
    targetGroupInfo?: core.Array<TargetGroupInfo> | core.ArrayOut<TargetGroupInfo>;
    targetGroupPairInfo?: TargetGroupPairInfo;
}
export declare class LoadBalancerInfo extends core.Schema<LoadBalancerInfoArgs> {
    elbInfo?: core.Array<ElbInfo> | core.ArrayOut<ElbInfo>;
    targetGroupInfo?: core.Array<TargetGroupInfo> | core.ArrayOut<TargetGroupInfo>;
    targetGroupPairInfo?: TargetGroupPairInfo;
}
export interface Ec2TagFilterArgs extends core.SchemaArgs {
    key?: string | core.StringOut;
    type?: string | core.StringOut;
    value?: string | core.StringOut;
}
export declare class Ec2TagFilter extends core.Schema<Ec2TagFilterArgs> {
    key?: string | core.StringOut;
    type?: string | core.StringOut;
    value?: string | core.StringOut;
}
export interface Ec2TagSetArgs extends core.SchemaArgs {
    ec2TagFilter?: core.Array<Ec2TagFilter> | core.ArrayOut<Ec2TagFilter>;
}
export declare class Ec2TagSet extends core.Schema<Ec2TagSetArgs> {
    ec2TagFilter?: core.Array<Ec2TagFilter> | core.ArrayOut<Ec2TagFilter>;
}
export interface AutoRollbackConfigurationArgs extends core.SchemaArgs {
    enabled?: boolean | core.BooleanOut;
    events?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class AutoRollbackConfiguration extends core.Schema<AutoRollbackConfigurationArgs> {
    enabled?: boolean | core.BooleanOut;
    events?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface DeploymentStyleArgs extends core.SchemaArgs {
    deploymentOption?: string | core.StringOut;
    deploymentType?: string | core.StringOut;
}
export declare class DeploymentStyle extends core.Schema<DeploymentStyleArgs> {
    deploymentOption?: string | core.StringOut;
    deploymentType?: string | core.StringOut;
}
export interface OnPremisesInstanceTagFilterArgs extends core.SchemaArgs {
    key?: string | core.StringOut;
    type?: string | core.StringOut;
    value?: string | core.StringOut;
}
export declare class OnPremisesInstanceTagFilter extends core.Schema<OnPremisesInstanceTagFilterArgs> {
    key?: string | core.StringOut;
    type?: string | core.StringOut;
    value?: string | core.StringOut;
}
export interface AlarmConfigurationArgs extends core.SchemaArgs {
    alarms?: core.Array<string> | core.ArrayOut<core.StringOut>;
    enabled?: boolean | core.BooleanOut;
    ignorePollAlarmFailure?: boolean | core.BooleanOut;
}
export declare class AlarmConfiguration extends core.Schema<AlarmConfigurationArgs> {
    alarms?: core.Array<string> | core.ArrayOut<core.StringOut>;
    enabled?: boolean | core.BooleanOut;
    ignorePollAlarmFailure?: boolean | core.BooleanOut;
}
export interface DeploymentReadyOptionArgs extends core.SchemaArgs {
    actionOnTimeout?: string | core.StringOut;
    waitTimeInMinutes?: number | core.NumberOut;
}
export declare class DeploymentReadyOption extends core.Schema<DeploymentReadyOptionArgs> {
    actionOnTimeout?: string | core.StringOut;
    waitTimeInMinutes?: number | core.NumberOut;
}
export interface GreenFleetProvisioningOptionArgs extends core.SchemaArgs {
    action?: string | core.StringOut;
}
export declare class GreenFleetProvisioningOption extends core.Schema<GreenFleetProvisioningOptionArgs> {
    action?: string | core.StringOut;
}
export interface TerminateBlueInstancesOnDeploymentSuccessArgs extends core.SchemaArgs {
    action?: string | core.StringOut;
    terminationWaitTimeInMinutes?: number | core.NumberOut;
}
export declare class TerminateBlueInstancesOnDeploymentSuccess extends core.Schema<TerminateBlueInstancesOnDeploymentSuccessArgs> {
    action?: string | core.StringOut;
    terminationWaitTimeInMinutes?: number | core.NumberOut;
}
export interface BlueGreenDeploymentConfigArgs extends core.SchemaArgs {
    deploymentReadyOption?: DeploymentReadyOption;
    greenFleetProvisioningOption?: GreenFleetProvisioningOption;
    terminateBlueInstancesOnDeploymentSuccess?: TerminateBlueInstancesOnDeploymentSuccess;
}
export declare class BlueGreenDeploymentConfig extends core.Schema<BlueGreenDeploymentConfigArgs> {
    deploymentReadyOption?: DeploymentReadyOption;
    greenFleetProvisioningOption?: GreenFleetProvisioningOption;
    terminateBlueInstancesOnDeploymentSuccess?: TerminateBlueInstancesOnDeploymentSuccess;
}
export interface EcsServiceArgs extends core.SchemaArgs {
    clusterName: string | core.StringOut;
    serviceName: string | core.StringOut;
}
export declare class EcsService extends core.Schema<EcsServiceArgs> {
    clusterName: string | core.StringOut;
    serviceName: string | core.StringOut;
}
export interface DeploymentGroupArgs extends core.ResourceArgs {
    alarmConfiguration?: AlarmConfiguration;
    appName: string | core.StringOut;
    autoRollbackConfiguration?: AutoRollbackConfiguration;
    autoscalingGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    blueGreenDeploymentConfig?: BlueGreenDeploymentConfig;
    deploymentConfigName?: string | core.StringOut;
    deploymentGroupName: string | core.StringOut;
    deploymentStyle?: DeploymentStyle;
    ec2TagFilter?: core.Array<Ec2TagFilter> | core.ArrayOut<Ec2TagFilter>;
    ec2TagSet?: core.Array<Ec2TagSet> | core.ArrayOut<Ec2TagSet>;
    ecsService?: EcsService;
    loadBalancerInfo?: LoadBalancerInfo;
    onPremisesInstanceTagFilter?: core.Array<OnPremisesInstanceTagFilter> | core.ArrayOut<OnPremisesInstanceTagFilter>;
    serviceRoleArn: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    triggerConfiguration?: core.Array<TriggerConfiguration> | core.ArrayOut<TriggerConfiguration>;
}
export declare class DeploymentGroup extends core.Resource<DeploymentGroupArgs> {
    alarmConfiguration?: AlarmConfiguration;
    appName: string | core.StringOut;
    arn: string | core.StringOut;
    autoRollbackConfiguration?: AutoRollbackConfiguration;
    autoscalingGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    blueGreenDeploymentConfig?: BlueGreenDeploymentConfig;
    computePlatform: string | core.StringOut;
    deploymentConfigName?: string | core.StringOut;
    deploymentGroupId: string | core.StringOut;
    deploymentGroupName: string | core.StringOut;
    deploymentStyle?: DeploymentStyle;
    ec2TagFilter?: core.Array<Ec2TagFilter> | core.ArrayOut<Ec2TagFilter>;
    ec2TagSet?: core.Array<Ec2TagSet> | core.ArrayOut<Ec2TagSet>;
    ecsService?: EcsService;
    id: string | core.StringOut;
    loadBalancerInfo?: LoadBalancerInfo;
    onPremisesInstanceTagFilter?: core.Array<OnPremisesInstanceTagFilter> | core.ArrayOut<OnPremisesInstanceTagFilter>;
    serviceRoleArn: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    triggerConfiguration?: core.Array<TriggerConfiguration> | core.ArrayOut<TriggerConfiguration>;
    constructor(name: string, args?: DeploymentGroupArgs);
    getNamespace(): string;
}
//# sourceMappingURL=deployment_group.d.ts.map