import { IEnvironmentAware } from "../environment-aware";
import * as constructs from "constructs";
/**
 * Indicates that this resource can be referenced as a BackupPlan.
 *
 * @stability experimental
 */
export interface IBackupPlanRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a BackupPlan resource.
     */
    readonly backupPlanRef: BackupPlanReference;
}
/**
 * A reference to a BackupPlan resource.
 *
 * @struct
 * @stability external
 */
export interface BackupPlanReference {
    /**
     * The BackupPlanId of the BackupPlan resource.
     */
    readonly backupPlanId: string;
    /**
     * The ARN of the BackupPlan resource.
     */
    readonly backupPlanArn: string;
}
/**
 * Indicates that this resource can be referenced as a BackupSelection.
 *
 * @stability experimental
 */
export interface IBackupSelectionRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a BackupSelection resource.
     */
    readonly backupSelectionRef: BackupSelectionReference;
}
/**
 * A reference to a BackupSelection resource.
 *
 * @struct
 * @stability external
 */
export interface BackupSelectionReference {
    /**
     * The Id of the BackupSelection resource.
     */
    readonly backupSelectionId: string;
}
/**
 * Indicates that this resource can be referenced as a BackupVault.
 *
 * @stability experimental
 */
export interface IBackupVaultRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a BackupVault resource.
     */
    readonly backupVaultRef: BackupVaultReference;
}
/**
 * A reference to a BackupVault resource.
 *
 * @struct
 * @stability external
 */
export interface BackupVaultReference {
    /**
     * The BackupVaultName of the BackupVault resource.
     */
    readonly backupVaultName: string;
    /**
     * The ARN of the BackupVault resource.
     */
    readonly backupVaultArn: string;
}
/**
 * Indicates that this resource can be referenced as a Framework.
 *
 * @stability experimental
 */
export interface IFrameworkRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Framework resource.
     */
    readonly frameworkRef: FrameworkReference;
}
/**
 * A reference to a Framework resource.
 *
 * @struct
 * @stability external
 */
export interface FrameworkReference {
    /**
     * The FrameworkArn of the Framework resource.
     */
    readonly frameworkArn: string;
}
/**
 * Indicates that this resource can be referenced as a ReportPlan.
 *
 * @stability experimental
 */
export interface IReportPlanRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a ReportPlan resource.
     */
    readonly reportPlanRef: ReportPlanReference;
}
/**
 * A reference to a ReportPlan resource.
 *
 * @struct
 * @stability external
 */
export interface ReportPlanReference {
    /**
     * The ReportPlanArn of the ReportPlan resource.
     */
    readonly reportPlanArn: string;
}
/**
 * Indicates that this resource can be referenced as a LogicallyAirGappedBackupVault.
 *
 * @stability experimental
 */
export interface ILogicallyAirGappedBackupVaultRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a LogicallyAirGappedBackupVault resource.
     */
    readonly logicallyAirGappedBackupVaultRef: LogicallyAirGappedBackupVaultReference;
}
/**
 * A reference to a LogicallyAirGappedBackupVault resource.
 *
 * @struct
 * @stability external
 */
export interface LogicallyAirGappedBackupVaultReference {
    /**
     * The BackupVaultName of the LogicallyAirGappedBackupVault resource.
     */
    readonly backupVaultName: string;
}
/**
 * Indicates that this resource can be referenced as a RestoreTestingPlan.
 *
 * @stability experimental
 */
export interface IRestoreTestingPlanRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a RestoreTestingPlan resource.
     */
    readonly restoreTestingPlanRef: RestoreTestingPlanReference;
}
/**
 * A reference to a RestoreTestingPlan resource.
 *
 * @struct
 * @stability external
 */
export interface RestoreTestingPlanReference {
    /**
     * The RestoreTestingPlanName of the RestoreTestingPlan resource.
     */
    readonly restoreTestingPlanName: string;
    /**
     * The ARN of the RestoreTestingPlan resource.
     */
    readonly restoreTestingPlanArn: string;
}
/**
 * Indicates that this resource can be referenced as a RestoreTestingSelection.
 *
 * @stability experimental
 */
export interface IRestoreTestingSelectionRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a RestoreTestingSelection resource.
     */
    readonly restoreTestingSelectionRef: RestoreTestingSelectionReference;
}
/**
 * A reference to a RestoreTestingSelection resource.
 *
 * @struct
 * @stability external
 */
export interface RestoreTestingSelectionReference {
    /**
     * The RestoreTestingPlanName of the RestoreTestingSelection resource.
     */
    readonly restoreTestingPlanName: string;
    /**
     * The RestoreTestingSelectionName of the RestoreTestingSelection resource.
     */
    readonly restoreTestingSelectionName: string;
}
/**
 * Indicates that this resource can be referenced as a TieringConfiguration.
 *
 * @stability experimental
 */
export interface ITieringConfigurationRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a TieringConfiguration resource.
     */
    readonly tieringConfigurationRef: TieringConfigurationReference;
}
/**
 * A reference to a TieringConfiguration resource.
 *
 * @struct
 * @stability external
 */
export interface TieringConfigurationReference {
    /**
     * The TieringConfigurationName of the TieringConfiguration resource.
     */
    readonly tieringConfigurationName: string;
    /**
     * The ARN of the TieringConfiguration resource.
     */
    readonly tieringConfigurationArn: string;
}
