import { LifecycleHookSpecificationProps } from './autoscalinggroup/LifecycleHookSpecificationProps';
import { Value } from '../../cloudformation/Value';
import { NotificationConfigurationProps } from './autoscalinggroup/NotificationConfigurationProps';
import { LaunchTemplateSpecificationProps } from './autoscalinggroup/LaunchTemplateSpecificationProps';
import { MixedInstancesPolicyProps } from './autoscalinggroup/MixedInstancesPolicyProps';
import { TagPropertyProps } from './autoscalinggroup/TagPropertyProps';
import { MetricsCollectionProps } from './autoscalinggroup/MetricsCollectionProps';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html">the AWS Docs</a>
*/
export type AutoScalingGroup = AwsResource<'AWS::AutoScaling::AutoScalingGroup', AutoScalingGroupProperties>;
export declare function autoScalingGroup(autoScalingGroupProps: AutoScalingGroupProperties): AutoScalingGroup;
/**
  
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html">the AWS Docs</a>
*/
export interface AutoScalingGroupProperties {
    /**  */
    lifecycleHookSpecificationList?: LifecycleHookSpecificationProps[];
    /**  */
    loadBalancerNames?: Value<Value<string>[]>;
    /**  */
    launchConfigurationName?: Value<string>;
    /**  */
    serviceLinkedRoleARN?: Value<string>;
    /**  */
    targetGroupARNs?: Value<Value<string>[]>;
    /**  */
    cooldown?: Value<string>;
    /**  */
    notificationConfigurations?: NotificationConfigurationProps[];
    /**  */
    desiredCapacity?: Value<string>;
    /**  */
    healthCheckGracePeriod?: Value<number>;
    /**  */
    defaultInstanceWarmup?: Value<number>;
    /**  */
    newInstancesProtectedFromScaleIn?: Value<boolean>;
    /**  */
    launchTemplate?: LaunchTemplateSpecificationProps;
    /**  */
    mixedInstancesPolicy?: MixedInstancesPolicyProps;
    /**  */
    vPCZoneIdentifier?: Value<Value<string>[]>;
    /**  */
    tags?: TagPropertyProps[];
    /**  */
    context?: Value<string>;
    /**  */
    capacityRebalance?: Value<boolean>;
    /**  */
    instanceId?: Value<string>;
    /**  */
    availabilityZones?: Value<Value<string>[]>;
    /**  */
    metricsCollection?: MetricsCollectionProps[];
    /**  */
    maxSize: Value<string>;
    /**  */
    minSize: Value<string>;
    /**  */
    terminationPolicies?: Value<Value<string>[]>;
    /**  */
    autoScalingGroupName?: Value<string>;
    /**  */
    desiredCapacityType?: Value<string>;
    /**  */
    placementGroup?: Value<string>;
    /**  */
    healthCheckType?: Value<string>;
    /**  */
    maxInstanceLifetime?: Value<number>;
}
