import { ResourceBase } from "../../resource";
import { Value, List } from "../../data-types";
export declare class CustomizedMetricSpecification {
    Dimensions?: List<MetricDimension>;
    MetricName: Value<string>;
    Namespace: Value<string>;
    Statistic: Value<string>;
    Unit?: Value<string>;
    constructor(properties: CustomizedMetricSpecification);
}
export declare class MetricDimension {
    Name: Value<string>;
    Value: Value<string>;
    constructor(properties: MetricDimension);
}
export declare class StepAdjustment {
    MetricIntervalLowerBound?: Value<number>;
    MetricIntervalUpperBound?: Value<number>;
    ScalingAdjustment: Value<number>;
    constructor(properties: StepAdjustment);
}
export declare class PredefinedMetricSpecification {
    PredefinedMetricType: Value<string>;
    ResourceLabel?: Value<string>;
    constructor(properties: PredefinedMetricSpecification);
}
export declare class TargetTrackingConfiguration {
    CustomizedMetricSpecification?: CustomizedMetricSpecification;
    DisableScaleIn?: Value<boolean>;
    PredefinedMetricSpecification?: PredefinedMetricSpecification;
    TargetValue: Value<number>;
    constructor(properties: TargetTrackingConfiguration);
}
export interface ScalingPolicyProperties {
    AdjustmentType?: Value<string>;
    Cooldown?: Value<string>;
    MetricAggregationType?: Value<string>;
    PolicyType?: Value<string>;
    TargetTrackingConfiguration?: TargetTrackingConfiguration;
    EstimatedInstanceWarmup?: Value<number>;
    MinAdjustmentMagnitude?: Value<number>;
    AutoScalingGroupName: Value<string>;
    ScalingAdjustment?: Value<number>;
    StepAdjustments?: List<StepAdjustment>;
}
export default class Inner_ScalingPolicy extends ResourceBase<ScalingPolicyProperties> {
    static CustomizedMetricSpecification: typeof CustomizedMetricSpecification;
    static MetricDimension: typeof MetricDimension;
    static StepAdjustment: typeof StepAdjustment;
    static PredefinedMetricSpecification: typeof PredefinedMetricSpecification;
    static TargetTrackingConfiguration: typeof TargetTrackingConfiguration;
    constructor(properties: ScalingPolicyProperties);
}
