import { ResourceBase } from "../../resource";
import { Value, List } from "../../data-types";
export declare class TargetTrackingConfiguration {
    ScaleOutCooldown?: Value<number>;
    TargetValue: Value<number>;
    PredefinedScalingMetricSpecification?: PredefinedScalingMetricSpecification;
    DisableScaleIn?: Value<boolean>;
    ScaleInCooldown?: Value<number>;
    EstimatedInstanceWarmup?: Value<number>;
    CustomizedScalingMetricSpecification?: CustomizedScalingMetricSpecification;
    constructor(properties: TargetTrackingConfiguration);
}
export declare class TagFilter {
    Values?: List<Value<string>>;
    Key: Value<string>;
    constructor(properties: TagFilter);
}
export declare class MetricDimension {
    Value: Value<string>;
    Name: Value<string>;
    constructor(properties: MetricDimension);
}
export declare class ScalingInstruction {
    TargetTrackingConfigurations: List<TargetTrackingConfiguration>;
    ServiceNamespace: Value<string>;
    PredefinedLoadMetricSpecification?: PredefinedLoadMetricSpecification;
    PredictiveScalingMaxCapacityBehavior?: Value<string>;
    ResourceId: Value<string>;
    PredictiveScalingMode?: Value<string>;
    CustomizedLoadMetricSpecification?: CustomizedLoadMetricSpecification;
    MinCapacity: Value<number>;
    ScheduledActionBufferTime?: Value<number>;
    DisableDynamicScaling?: Value<boolean>;
    ScalableDimension: Value<string>;
    ScalingPolicyUpdateBehavior?: Value<string>;
    PredictiveScalingMaxCapacityBuffer?: Value<number>;
    MaxCapacity: Value<number>;
    constructor(properties: ScalingInstruction);
}
export declare class CustomizedScalingMetricSpecification {
    MetricName: Value<string>;
    Statistic: Value<string>;
    Dimensions?: List<MetricDimension>;
    Unit?: Value<string>;
    Namespace: Value<string>;
    constructor(properties: CustomizedScalingMetricSpecification);
}
export declare class PredefinedLoadMetricSpecification {
    PredefinedLoadMetricType: Value<string>;
    ResourceLabel?: Value<string>;
    constructor(properties: PredefinedLoadMetricSpecification);
}
export declare class ApplicationSource {
    CloudFormationStackARN?: Value<string>;
    TagFilters?: List<TagFilter>;
    constructor(properties: ApplicationSource);
}
export declare class PredefinedScalingMetricSpecification {
    ResourceLabel?: Value<string>;
    PredefinedScalingMetricType: Value<string>;
    constructor(properties: PredefinedScalingMetricSpecification);
}
export declare class CustomizedLoadMetricSpecification {
    MetricName: Value<string>;
    Statistic: Value<string>;
    Dimensions?: List<MetricDimension>;
    Unit?: Value<string>;
    Namespace: Value<string>;
    constructor(properties: CustomizedLoadMetricSpecification);
}
export interface ScalingPlanProperties {
    ApplicationSource: ApplicationSource;
    ScalingInstructions: List<ScalingInstruction>;
}
export default class Inner_ScalingPlan extends ResourceBase<ScalingPlanProperties> {
    static TargetTrackingConfiguration: typeof TargetTrackingConfiguration;
    static TagFilter: typeof TagFilter;
    static MetricDimension: typeof MetricDimension;
    static ScalingInstruction: typeof ScalingInstruction;
    static CustomizedScalingMetricSpecification: typeof CustomizedScalingMetricSpecification;
    static PredefinedLoadMetricSpecification: typeof PredefinedLoadMetricSpecification;
    static ApplicationSource: typeof ApplicationSource;
    static PredefinedScalingMetricSpecification: typeof PredefinedScalingMetricSpecification;
    static CustomizedLoadMetricSpecification: typeof CustomizedLoadMetricSpecification;
    constructor(properties: ScalingPlanProperties);
}
