import * as core from "@terrascript/core";
export interface LifecycleArgs extends core.SchemaArgs {
    coldStorageAfter?: number | core.NumberOut;
    deleteAfter?: number | core.NumberOut;
}
export declare class Lifecycle extends core.Schema<LifecycleArgs> {
    coldStorageAfter?: number | core.NumberOut;
    deleteAfter?: number | core.NumberOut;
}
export interface CopyActionArgs extends core.SchemaArgs {
    destinationVaultArn: string | core.StringOut;
    lifecycle?: Lifecycle;
}
export declare class CopyAction extends core.Schema<CopyActionArgs> {
    destinationVaultArn: string | core.StringOut;
    lifecycle?: Lifecycle;
}
export interface RuleArgs extends core.SchemaArgs {
    completionWindow?: number | core.NumberOut;
    copyAction?: core.Array<CopyAction> | core.ArrayOut<CopyAction>;
    enableContinuousBackup?: boolean | core.BooleanOut;
    lifecycle?: Lifecycle;
    recoveryPointTags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    ruleName: string | core.StringOut;
    schedule?: string | core.StringOut;
    startWindow?: number | core.NumberOut;
    targetVaultName: string | core.StringOut;
}
export declare class Rule extends core.Schema<RuleArgs> {
    completionWindow?: number | core.NumberOut;
    copyAction?: core.Array<CopyAction> | core.ArrayOut<CopyAction>;
    enableContinuousBackup?: boolean | core.BooleanOut;
    lifecycle?: Lifecycle;
    recoveryPointTags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    ruleName: string | core.StringOut;
    schedule?: string | core.StringOut;
    startWindow?: number | core.NumberOut;
    targetVaultName: string | core.StringOut;
}
export interface AdvancedBackupSettingArgs extends core.SchemaArgs {
    backupOptions: core.Map<string, string> | core.MapOut<core.StringOut>;
    resourceType: string | core.StringOut;
}
export declare class AdvancedBackupSetting extends core.Schema<AdvancedBackupSettingArgs> {
    backupOptions: core.Map<string, string> | core.MapOut<core.StringOut>;
    resourceType: string | core.StringOut;
}
export interface PlanArgs extends core.ResourceArgs {
    advancedBackupSetting?: core.Array<AdvancedBackupSetting> | core.ArrayOut<AdvancedBackupSetting>;
    name: string | core.StringOut;
    rule: core.Array<Rule> | core.ArrayOut<Rule>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class Plan extends core.Resource<PlanArgs> {
    advancedBackupSetting?: core.Array<AdvancedBackupSetting> | core.ArrayOut<AdvancedBackupSetting>;
    arn: string | core.StringOut;
    id: string | core.StringOut;
    name: string | core.StringOut;
    rule: core.Array<Rule> | core.ArrayOut<Rule>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    version: string | core.StringOut;
    constructor(name: string, args?: PlanArgs);
    getNamespace(): string;
}
//# sourceMappingURL=plan.d.ts.map