import { ResourceBase, ResourceTag as Inner_ResourceTag } from "../../resource";
import { Value, List } from "../../data-types";
export declare class Parameters {
    ExcludeBootVolume?: Value<boolean>;
    constructor(properties: Parameters);
}
export declare class CrossRegionCopyRule {
    TargetRegion?: Value<string>;
    Encrypted?: Value<boolean>;
    CmkArn?: Value<string>;
    RetainRule?: CrossRegionCopyRetainRule;
    CopyTags?: Value<boolean>;
    constructor(properties: CrossRegionCopyRule);
}
export declare class CrossRegionCopyRetainRule {
    IntervalUnit?: Value<string>;
    Interval?: Value<number>;
    constructor(properties: CrossRegionCopyRetainRule);
}
export declare class Schedule {
    TagsToAdd?: List<Inner_ResourceTag>;
    CreateRule?: CreateRule;
    VariableTags?: List<Inner_ResourceTag>;
    FastRestoreRule?: FastRestoreRule;
    RetainRule?: RetainRule;
    CrossRegionCopyRules?: List<CrossRegionCopyRule>;
    Name?: Value<string>;
    CopyTags?: Value<boolean>;
    constructor(properties: Schedule);
}
export declare class CreateRule {
    IntervalUnit: Value<string>;
    Times?: List<Value<string>>;
    Interval: Value<number>;
    constructor(properties: CreateRule);
}
export declare class FastRestoreRule {
    IntervalUnit?: Value<string>;
    AvailabilityZones?: List<Value<string>>;
    Count?: Value<number>;
    Interval?: Value<number>;
    constructor(properties: FastRestoreRule);
}
export declare class PolicyDetails {
    ResourceTypes: List<Value<string>>;
    Schedules: List<Schedule>;
    PolicyType?: Value<string>;
    Parameters?: Parameters;
    TargetTags: List<Inner_ResourceTag>;
    constructor(properties: PolicyDetails);
}
export declare class RetainRule {
    IntervalUnit?: Value<string>;
    Count?: Value<number>;
    Interval?: Value<number>;
    constructor(properties: RetainRule);
}
export interface LifecyclePolicyProperties {
    ExecutionRoleArn?: Value<string>;
    Description?: Value<string>;
    State?: Value<string>;
    PolicyDetails?: PolicyDetails;
}
export default class Inner_LifecyclePolicy extends ResourceBase<LifecyclePolicyProperties> {
    static Parameters: typeof Parameters;
    static CrossRegionCopyRule: typeof CrossRegionCopyRule;
    static CrossRegionCopyRetainRule: typeof CrossRegionCopyRetainRule;
    static Schedule: typeof Schedule;
    static CreateRule: typeof CreateRule;
    static FastRestoreRule: typeof FastRestoreRule;
    static PolicyDetails: typeof PolicyDetails;
    static RetainRule: typeof RetainRule;
    constructor(properties: LifecyclePolicyProperties);
}
