export interface ApplicationSource {
    /** The Amazon Resource Name (ARN) of a AWS CloudFormation stack. */
    CloudFormationStackARN?: string;
    /** A set of tags (up to 50). */
    TagFilters?: any[];
}
export interface ScalingInstruction {
    /** The namespace of the AWS service. */
    ServiceNamespace: 'autoscaling' | 'ecs' | 'ec2' | 'rds' | 'dynamodb';
    /** The ID of the resource. This string consists of the resource type and unique identifier. Auto Scaling group - The resource type is autoScalingGroup and the unique identifier is the name of the Auto Sc */
    ResourceId: string;
    /** The scalable dimension associated with the resource. autoscaling:autoScalingGroup:DesiredCapacity - The desired capacity of an Auto Scaling group. ecs:service:DesiredCount - The desired task count of  */
    ScalableDimension: 'autoscaling:autoScalingGroup:DesiredCapacity' | 'ecs:service:DesiredCount' | 'ec2:spot-fleet-request:TargetCapacity' | 'rds:cluster:ReadReplicaCount' | 'dynamodb:table:ReadCapacityUnits' | 'dynamodb:table:WriteCapacityUnits' | 'dynamodb:index:ReadCapacityUnits' | 'dynamodb:index:WriteCapacityUnits';
    /** The minimum capacity of the resource. */
    MinCapacity: number;
    /** The maximum capacity of the resource. The exception to this upper limit is if you specify a non-default setting for PredictiveScalingMaxCapacityBehavior. */
    MaxCapacity: number;
    /** The target tracking configurations (up to 10). Each of these structures must specify a unique scaling metric and a target value for the metric. */
    TargetTrackingConfigurations: any[];
    /** The predefined load metric to use for predictive scaling. This parameter or a CustomizedLoadMetricSpecification is required when configuring predictive scaling, and cannot be used otherwise. */
    PredefinedLoadMetricSpecification?: any;
    /** The customized load metric to use for predictive scaling. This parameter or a PredefinedLoadMetricSpecification is required when configuring predictive scaling, and cannot be used otherwise. */
    CustomizedLoadMetricSpecification?: any;
    /** The amount of time, in seconds, to buffer the run time of scheduled scaling actions when scaling out. For example, if the forecast says to add capacity at 10:00 AM, and the buffer time is 5 minutes, t */
    ScheduledActionBufferTime?: number;
    /** Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity specified for the resource. The default value is SetForecastCapacityToMaxCapacity. The f */
    PredictiveScalingMaxCapacityBehavior?: 'SetForecastCapacityToMaxCapacity' | 'SetMaxCapacityToForecastCapacity' | 'SetMaxCapacityAboveForecastCapacity';
    /** The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. The value is specified as a percentage relative to the forecast capacity. For example, if */
    PredictiveScalingMaxCapacityBuffer?: number;
    /** The predictive scaling mode. The default value is ForecastAndScale. Otherwise, AWS Auto Scaling forecasts capacity but does not create any scheduled scaling actions based on the capacity forecast. */
    PredictiveScalingMode?: 'ForecastAndScale' | 'ForecastOnly';
    /** Controls whether a resource's externally created scaling policies are kept or replaced. The default value is KeepExternalPolicies. If the parameter is set to ReplaceExternalPolicies, any scaling polic */
    ScalingPolicyUpdateBehavior?: 'KeepExternalPolicies' | 'ReplaceExternalPolicies';
    /** Controls whether dynamic scaling by AWS Auto Scaling is disabled. When dynamic scaling is enabled, AWS Auto Scaling creates target tracking scaling policies based on the specified target tracking conf */
    DisableDynamicScaling?: boolean;
}
export interface CreateScalingPlanInput {
    /** A CloudFormation stack or set of tags. You can create one scaling plan per application source. For more information, see ApplicationSource in the AWS Auto Scaling API Reference. */
    ApplicationSource: ApplicationSource;
    /** The scaling instructions. For more information, see ScalingInstruction in the AWS Auto Scaling API Reference. */
    ScalingInstructions: ScalingInstruction[];
    /** The name of the scaling plan. Names cannot contain vertical bars, colons, or forward slashes. */
    ScalingPlanName: string;
}
export interface DeleteScalingPlanInput {
    /** The name of the scaling plan. */
    ScalingPlanName: string;
    /** The version number of the scaling plan. Currently, the only valid value is 1. */
    ScalingPlanVersion: number;
}
export interface DescribeScalingPlanResourcesInput {
    /** The name of the scaling plan. */
    ScalingPlanName: string;
    /** The version number of the scaling plan. Currently, the only valid value is 1. */
    ScalingPlanVersion: number;
    /** The maximum number of scalable resources to return. The value must be between 1 and 50. The default value is 50. */
    MaxResults?: number;
    /** The token for the next set of results. */
    NextToken?: string;
}
export interface DescribeScalingPlansInput {
    /** The sources for the applications (up to 10). If you specify scaling plan names, you cannot specify application sources. */
    ApplicationSources?: ApplicationSource[];
    /** The maximum number of scalable resources to return. This value can be between 1 and 50. The default value is 50. */
    MaxResults?: number;
    /** The token for the next set of results. */
    NextToken?: string;
    /** The names of the scaling plans (up to 10). If you specify application sources, you cannot specify scaling plan names. */
    ScalingPlanNames?: string[];
    /** The version number of the scaling plan. Currently, the only valid value is 1. If you specify a scaling plan version, you must also specify a scaling plan name. */
    ScalingPlanVersion?: number;
}
export interface GetScalingPlanResourceForecastDataInput {
    /** The exclusive end time of the time range for the forecast data to get. The maximum time duration between the start and end time is seven days. Although this parameter can accept a date and time that i */
    EndTime: string;
    /** The type of forecast data to get. LoadForecast: The load metric forecast. CapacityForecast: The capacity forecast. ScheduledActionMinCapacity: The minimum capacity for each scheduled scaling action. T */
    ForecastDataType: 'CapacityForecast' | 'LoadForecast' | 'ScheduledActionMinCapacity' | 'ScheduledActionMaxCapacity';
    /** The ID of the resource. This string consists of a prefix (autoScalingGroup) followed by the name of a specified Auto Scaling group (my-asg). Example: autoScalingGroup/my-asg. */
    ResourceId: string;
    /** The scalable dimension for the resource. The only valid value is autoscaling:autoScalingGroup:DesiredCapacity. */
    ScalableDimension: 'autoscaling:autoScalingGroup:DesiredCapacity' | 'ecs:service:DesiredCount' | 'ec2:spot-fleet-request:TargetCapacity' | 'rds:cluster:ReadReplicaCount' | 'dynamodb:table:ReadCapacityUnits' | 'dynamodb:table:WriteCapacityUnits' | 'dynamodb:index:ReadCapacityUnits' | 'dynamodb:index:WriteCapacityUnits';
    /** The name of the scaling plan. */
    ScalingPlanName: string;
    /** The version number of the scaling plan. Currently, the only valid value is 1. */
    ScalingPlanVersion: number;
    /** The namespace of the AWS service. The only valid value is autoscaling. */
    ServiceNamespace: 'autoscaling' | 'ecs' | 'ec2' | 'rds' | 'dynamodb';
    /** The inclusive start time of the time range for the forecast data to get. The date and time can be at most 56 days before the current date and time. */
    StartTime: string;
}
export interface UpdateScalingPlanInput {
    /** The name of the scaling plan. */
    ScalingPlanName: string;
    /** The version number of the scaling plan. The only valid value is 1. Currently, you cannot have multiple scaling plan versions. */
    ScalingPlanVersion: number;
    /** A CloudFormation stack or set of tags. For more information, see ApplicationSource in the AWS Auto Scaling API Reference. */
    ApplicationSource?: ApplicationSource;
    /** The scaling instructions. For more information, see ScalingInstruction in the AWS Auto Scaling API Reference. */
    ScalingInstructions?: ScalingInstruction[];
}
/** Auto Scaling Plans service binding for Step Functions SDK integrations. */
export declare class AutoScalingPlans {
    constructor();
    createScalingPlan<T>(params: CreateScalingPlanInput): Promise<T>;
    deleteScalingPlan<T>(params: DeleteScalingPlanInput): Promise<T>;
    describeScalingPlanResources<T>(params: DescribeScalingPlanResourcesInput): Promise<T>;
    describeScalingPlans<T>(params: DescribeScalingPlansInput): Promise<T>;
    getScalingPlanResourceForecastData<T>(params: GetScalingPlanResourceForecastDataInput): Promise<T>;
    updateScalingPlan<T>(params: UpdateScalingPlanInput): Promise<T>;
}
//# sourceMappingURL=AutoScalingPlans.d.ts.map