/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface GkeBackupRestorePlanConfig extends cdktf.TerraformMetaArguments {
    /**
    * A reference to the BackupPlan from which Backups may be used
    * as the source for Restores created via this RestorePlan.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#backup_plan GkeBackupRestorePlan#backup_plan}
    */
    readonly backupPlan: string;
    /**
    * The source cluster from which Restores will be created via this RestorePlan.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#cluster GkeBackupRestorePlan#cluster}
    */
    readonly cluster: string;
    /**
    * User specified descriptive string for this RestorePlan.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#description GkeBackupRestorePlan#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#id GkeBackupRestorePlan#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * Description: A set of custom labels supplied by the user.
    * A list of key->value pairs.
    * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    *
    *
    * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
    * Please refer to the field 'effective_labels' for all of the labels present on the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#labels GkeBackupRestorePlan#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The region of the Restore Plan.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#location GkeBackupRestorePlan#location}
    */
    readonly location: string;
    /**
    * The full name of the BackupPlan Resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#name GkeBackupRestorePlan#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#project GkeBackupRestorePlan#project}
    */
    readonly project?: string;
    /**
    * restore_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#restore_config GkeBackupRestorePlan#restore_config}
    */
    readonly restoreConfig: GkeBackupRestorePlanRestoreConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#timeouts GkeBackupRestorePlan#timeouts}
    */
    readonly timeouts?: GkeBackupRestorePlanTimeouts;
}
export interface GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKinds {
    /**
    * API Group string of a Kubernetes resource, e.g.
    * "apiextensions.k8s.io", "storage.k8s.io", etc.
    * Use empty string for core group.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#resource_group GkeBackupRestorePlan#resource_group}
    */
    readonly resourceGroup?: string;
    /**
    * Kind of a Kubernetes resource, e.g.
    * "CustomResourceDefinition", "StorageClass", etc.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#resource_kind GkeBackupRestorePlan#resource_kind}
    */
    readonly resourceKind?: string;
}
export declare function gkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKindsToTerraform(struct?: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKinds | cdktf.IResolvable): any;
export declare function gkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKindsToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKinds | cdktf.IResolvable): any;
export declare class GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKindsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKinds | cdktf.IResolvable | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKinds | cdktf.IResolvable | undefined);
    private _resourceGroup?;
    get resourceGroup(): string;
    set resourceGroup(value: string);
    resetResourceGroup(): void;
    get resourceGroupInput(): string | undefined;
    private _resourceKind?;
    get resourceKind(): string;
    set resourceKind(value: string);
    resetResourceKind(): void;
    get resourceKindInput(): string | undefined;
}
export declare class GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKindsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKinds[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKindsOutputReference;
}
export interface GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKinds {
    /**
    * API Group string of a Kubernetes resource, e.g.
    * "apiextensions.k8s.io", "storage.k8s.io", etc.
    * Use empty string for core group.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#resource_group GkeBackupRestorePlan#resource_group}
    */
    readonly resourceGroup?: string;
    /**
    * Kind of a Kubernetes resource, e.g.
    * "CustomResourceDefinition", "StorageClass", etc.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#resource_kind GkeBackupRestorePlan#resource_kind}
    */
    readonly resourceKind?: string;
}
export declare function gkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKindsToTerraform(struct?: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKinds | cdktf.IResolvable): any;
export declare function gkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKindsToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKinds | cdktf.IResolvable): any;
export declare class GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKindsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKinds | cdktf.IResolvable | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKinds | cdktf.IResolvable | undefined);
    private _resourceGroup?;
    get resourceGroup(): string;
    set resourceGroup(value: string);
    resetResourceGroup(): void;
    get resourceGroupInput(): string | undefined;
    private _resourceKind?;
    get resourceKind(): string;
    set resourceKind(value: string);
    resetResourceKind(): void;
    get resourceKindInput(): string | undefined;
}
export declare class GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKindsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKinds[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKindsOutputReference;
}
export interface GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScope {
    /**
    * If True, all valid cluster-scoped resources will be restored.
    * Mutually exclusive to any other field in 'clusterResourceRestoreScope'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#all_group_kinds GkeBackupRestorePlan#all_group_kinds}
    */
    readonly allGroupKinds?: boolean | cdktf.IResolvable;
    /**
    * If True, no cluster-scoped resources will be restored.
    * Mutually exclusive to any other field in 'clusterResourceRestoreScope'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#no_group_kinds GkeBackupRestorePlan#no_group_kinds}
    */
    readonly noGroupKinds?: boolean | cdktf.IResolvable;
    /**
    * excluded_group_kinds block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#excluded_group_kinds GkeBackupRestorePlan#excluded_group_kinds}
    */
    readonly excludedGroupKinds?: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKinds[] | cdktf.IResolvable;
    /**
    * selected_group_kinds block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#selected_group_kinds GkeBackupRestorePlan#selected_group_kinds}
    */
    readonly selectedGroupKinds?: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKinds[] | cdktf.IResolvable;
}
export declare function gkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeToTerraform(struct?: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeOutputReference | GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScope): any;
export declare function gkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeOutputReference | GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScope): any;
export declare class GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScope | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScope | undefined);
    private _allGroupKinds?;
    get allGroupKinds(): boolean | cdktf.IResolvable;
    set allGroupKinds(value: boolean | cdktf.IResolvable);
    resetAllGroupKinds(): void;
    get allGroupKindsInput(): boolean | cdktf.IResolvable | undefined;
    private _noGroupKinds?;
    get noGroupKinds(): boolean | cdktf.IResolvable;
    set noGroupKinds(value: boolean | cdktf.IResolvable);
    resetNoGroupKinds(): void;
    get noGroupKindsInput(): boolean | cdktf.IResolvable | undefined;
    private _excludedGroupKinds;
    get excludedGroupKinds(): GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKindsList;
    putExcludedGroupKinds(value: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKinds[] | cdktf.IResolvable): void;
    resetExcludedGroupKinds(): void;
    get excludedGroupKindsInput(): cdktf.IResolvable | GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeExcludedGroupKinds[] | undefined;
    private _selectedGroupKinds;
    get selectedGroupKinds(): GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKindsList;
    putSelectedGroupKinds(value: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKinds[] | cdktf.IResolvable): void;
    resetSelectedGroupKinds(): void;
    get selectedGroupKindsInput(): cdktf.IResolvable | GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeSelectedGroupKinds[] | undefined;
}
export interface GkeBackupRestorePlanRestoreConfigExcludedNamespaces {
    /**
    * A list of Kubernetes Namespaces.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#namespaces GkeBackupRestorePlan#namespaces}
    */
    readonly namespaces: string[];
}
export declare function gkeBackupRestorePlanRestoreConfigExcludedNamespacesToTerraform(struct?: GkeBackupRestorePlanRestoreConfigExcludedNamespacesOutputReference | GkeBackupRestorePlanRestoreConfigExcludedNamespaces): any;
export declare function gkeBackupRestorePlanRestoreConfigExcludedNamespacesToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigExcludedNamespacesOutputReference | GkeBackupRestorePlanRestoreConfigExcludedNamespaces): any;
export declare class GkeBackupRestorePlanRestoreConfigExcludedNamespacesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeBackupRestorePlanRestoreConfigExcludedNamespaces | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigExcludedNamespaces | undefined);
    private _namespaces?;
    get namespaces(): string[];
    set namespaces(value: string[]);
    get namespacesInput(): string[] | undefined;
}
export interface GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiring {
    /**
    * API Group of a Kubernetes resource, e.g.
    * "apiextensions.k8s.io", "storage.k8s.io", etc.
    * Use empty string for core group.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#resource_group GkeBackupRestorePlan#resource_group}
    */
    readonly resourceGroup?: string;
    /**
    * Kind of a Kubernetes resource, e.g.
    * "CustomResourceDefinition", "StorageClass", etc.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#resource_kind GkeBackupRestorePlan#resource_kind}
    */
    readonly resourceKind?: string;
}
export declare function gkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiringToTerraform(struct?: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiringOutputReference | GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiring): any;
export declare function gkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiringToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiringOutputReference | GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiring): any;
export declare class GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiringOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiring | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiring | undefined);
    private _resourceGroup?;
    get resourceGroup(): string;
    set resourceGroup(value: string);
    resetResourceGroup(): void;
    get resourceGroupInput(): string | undefined;
    private _resourceKind?;
    get resourceKind(): string;
    set resourceKind(value: string);
    resetResourceKind(): void;
    get resourceKindInput(): string | undefined;
}
export interface GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfying {
    /**
    * API Group of a Kubernetes resource, e.g.
    * "apiextensions.k8s.io", "storage.k8s.io", etc.
    * Use empty string for core group.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#resource_group GkeBackupRestorePlan#resource_group}
    */
    readonly resourceGroup?: string;
    /**
    * Kind of a Kubernetes resource, e.g.
    * "CustomResourceDefinition", "StorageClass", etc.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#resource_kind GkeBackupRestorePlan#resource_kind}
    */
    readonly resourceKind?: string;
}
export declare function gkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfyingToTerraform(struct?: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfyingOutputReference | GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfying): any;
export declare function gkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfyingToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfyingOutputReference | GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfying): any;
export declare class GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfyingOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfying | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfying | undefined);
    private _resourceGroup?;
    get resourceGroup(): string;
    set resourceGroup(value: string);
    resetResourceGroup(): void;
    get resourceGroupInput(): string | undefined;
    private _resourceKind?;
    get resourceKind(): string;
    set resourceKind(value: string);
    resetResourceKind(): void;
    get resourceKindInput(): string | undefined;
}
export interface GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependencies {
    /**
    * requiring block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#requiring GkeBackupRestorePlan#requiring}
    */
    readonly requiring: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiring;
    /**
    * satisfying block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#satisfying GkeBackupRestorePlan#satisfying}
    */
    readonly satisfying: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfying;
}
export declare function gkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesToTerraform(struct?: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependencies | cdktf.IResolvable): any;
export declare function gkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependencies | cdktf.IResolvable): any;
export declare class GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependencies | cdktf.IResolvable | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependencies | cdktf.IResolvable | undefined);
    private _requiring;
    get requiring(): GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiringOutputReference;
    putRequiring(value: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiring): void;
    get requiringInput(): GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesRequiring | undefined;
    private _satisfying;
    get satisfying(): GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfyingOutputReference;
    putSatisfying(value: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfying): void;
    get satisfyingInput(): GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesSatisfying | undefined;
}
export declare class GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependencies[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesOutputReference;
}
export interface GkeBackupRestorePlanRestoreConfigRestoreOrder {
    /**
    * group_kind_dependencies block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#group_kind_dependencies GkeBackupRestorePlan#group_kind_dependencies}
    */
    readonly groupKindDependencies: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependencies[] | cdktf.IResolvable;
}
export declare function gkeBackupRestorePlanRestoreConfigRestoreOrderToTerraform(struct?: GkeBackupRestorePlanRestoreConfigRestoreOrderOutputReference | GkeBackupRestorePlanRestoreConfigRestoreOrder): any;
export declare function gkeBackupRestorePlanRestoreConfigRestoreOrderToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigRestoreOrderOutputReference | GkeBackupRestorePlanRestoreConfigRestoreOrder): any;
export declare class GkeBackupRestorePlanRestoreConfigRestoreOrderOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeBackupRestorePlanRestoreConfigRestoreOrder | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigRestoreOrder | undefined);
    private _groupKindDependencies;
    get groupKindDependencies(): GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependenciesList;
    putGroupKindDependencies(value: GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependencies[] | cdktf.IResolvable): void;
    get groupKindDependenciesInput(): cdktf.IResolvable | GkeBackupRestorePlanRestoreConfigRestoreOrderGroupKindDependencies[] | undefined;
}
export interface GkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNames {
    /**
    * The name of a Kubernetes Resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#name GkeBackupRestorePlan#name}
    */
    readonly name: string;
    /**
    * The namespace of a Kubernetes Resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#namespace GkeBackupRestorePlan#namespace}
    */
    readonly namespace: string;
}
export declare function gkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNamesToTerraform(struct?: GkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNames | cdktf.IResolvable): any;
export declare function gkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNamesToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNames | cdktf.IResolvable): any;
export declare class GkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNamesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNames | cdktf.IResolvable | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNames | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _namespace?;
    get namespace(): string;
    set namespace(value: string);
    get namespaceInput(): string | undefined;
}
export declare class GkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNamesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNames[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNamesOutputReference;
}
export interface GkeBackupRestorePlanRestoreConfigSelectedApplications {
    /**
    * namespaced_names block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#namespaced_names GkeBackupRestorePlan#namespaced_names}
    */
    readonly namespacedNames: GkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNames[] | cdktf.IResolvable;
}
export declare function gkeBackupRestorePlanRestoreConfigSelectedApplicationsToTerraform(struct?: GkeBackupRestorePlanRestoreConfigSelectedApplicationsOutputReference | GkeBackupRestorePlanRestoreConfigSelectedApplications): any;
export declare function gkeBackupRestorePlanRestoreConfigSelectedApplicationsToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigSelectedApplicationsOutputReference | GkeBackupRestorePlanRestoreConfigSelectedApplications): any;
export declare class GkeBackupRestorePlanRestoreConfigSelectedApplicationsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeBackupRestorePlanRestoreConfigSelectedApplications | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigSelectedApplications | undefined);
    private _namespacedNames;
    get namespacedNames(): GkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNamesList;
    putNamespacedNames(value: GkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNames[] | cdktf.IResolvable): void;
    get namespacedNamesInput(): cdktf.IResolvable | GkeBackupRestorePlanRestoreConfigSelectedApplicationsNamespacedNames[] | undefined;
}
export interface GkeBackupRestorePlanRestoreConfigSelectedNamespaces {
    /**
    * A list of Kubernetes Namespaces.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#namespaces GkeBackupRestorePlan#namespaces}
    */
    readonly namespaces: string[];
}
export declare function gkeBackupRestorePlanRestoreConfigSelectedNamespacesToTerraform(struct?: GkeBackupRestorePlanRestoreConfigSelectedNamespacesOutputReference | GkeBackupRestorePlanRestoreConfigSelectedNamespaces): any;
export declare function gkeBackupRestorePlanRestoreConfigSelectedNamespacesToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigSelectedNamespacesOutputReference | GkeBackupRestorePlanRestoreConfigSelectedNamespaces): any;
export declare class GkeBackupRestorePlanRestoreConfigSelectedNamespacesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeBackupRestorePlanRestoreConfigSelectedNamespaces | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigSelectedNamespaces | undefined);
    private _namespaces?;
    get namespaces(): string[];
    set namespaces(value: string[]);
    get namespacesInput(): string[] | undefined;
}
export interface GkeBackupRestorePlanRestoreConfigTransformationRulesFieldActions {
    /**
    * A string containing a JSON Pointer value that references the
    * location in the target document to move the value from.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#from_path GkeBackupRestorePlan#from_path}
    */
    readonly fromPath?: string;
    /**
    * Specifies the operation to perform. Possible values: ["REMOVE", "MOVE", "COPY", "ADD", "TEST", "REPLACE"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#op GkeBackupRestorePlan#op}
    */
    readonly op: string;
    /**
    * A string containing a JSON-Pointer value that references a
    * location within the target document where the operation is performed.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#path GkeBackupRestorePlan#path}
    */
    readonly path?: string;
    /**
    * A string that specifies the desired value in string format
    * to use for transformation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#value GkeBackupRestorePlan#value}
    */
    readonly value?: string;
}
export declare function gkeBackupRestorePlanRestoreConfigTransformationRulesFieldActionsToTerraform(struct?: GkeBackupRestorePlanRestoreConfigTransformationRulesFieldActions | cdktf.IResolvable): any;
export declare function gkeBackupRestorePlanRestoreConfigTransformationRulesFieldActionsToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigTransformationRulesFieldActions | cdktf.IResolvable): any;
export declare class GkeBackupRestorePlanRestoreConfigTransformationRulesFieldActionsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeBackupRestorePlanRestoreConfigTransformationRulesFieldActions | cdktf.IResolvable | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigTransformationRulesFieldActions | cdktf.IResolvable | undefined);
    private _fromPath?;
    get fromPath(): string;
    set fromPath(value: string);
    resetFromPath(): void;
    get fromPathInput(): string | undefined;
    private _op?;
    get op(): string;
    set op(value: string);
    get opInput(): string | undefined;
    private _path?;
    get path(): string;
    set path(value: string);
    resetPath(): void;
    get pathInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    resetValue(): void;
    get valueInput(): string | undefined;
}
export declare class GkeBackupRestorePlanRestoreConfigTransformationRulesFieldActionsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeBackupRestorePlanRestoreConfigTransformationRulesFieldActions[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeBackupRestorePlanRestoreConfigTransformationRulesFieldActionsOutputReference;
}
export interface GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKinds {
    /**
    * API Group string of a Kubernetes resource, e.g.
    * "apiextensions.k8s.io", "storage.k8s.io", etc.
    * Use empty string for core group.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#resource_group GkeBackupRestorePlan#resource_group}
    */
    readonly resourceGroup?: string;
    /**
    * Kind of a Kubernetes resource, e.g.
    * "CustomResourceDefinition", "StorageClass", etc.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#resource_kind GkeBackupRestorePlan#resource_kind}
    */
    readonly resourceKind?: string;
}
export declare function gkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKindsToTerraform(struct?: GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKinds | cdktf.IResolvable): any;
export declare function gkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKindsToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKinds | cdktf.IResolvable): any;
export declare class GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKindsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKinds | cdktf.IResolvable | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKinds | cdktf.IResolvable | undefined);
    private _resourceGroup?;
    get resourceGroup(): string;
    set resourceGroup(value: string);
    resetResourceGroup(): void;
    get resourceGroupInput(): string | undefined;
    private _resourceKind?;
    get resourceKind(): string;
    set resourceKind(value: string);
    resetResourceKind(): void;
    get resourceKindInput(): string | undefined;
}
export declare class GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKindsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKinds[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKindsOutputReference;
}
export interface GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilter {
    /**
    * This is a JSONPath expression that matches specific fields of
    * candidate resources and it operates as a filtering parameter
    * (resources that are not matched with this expression will not
    * be candidates for transformation).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#json_path GkeBackupRestorePlan#json_path}
    */
    readonly jsonPath?: string;
    /**
    * (Filtering parameter) Any resource subject to transformation must
    * be contained within one of the listed Kubernetes Namespace in the
    * Backup. If this field is not provided, no namespace filtering will
    * be performed (all resources in all Namespaces, including all
    * cluster-scoped resources, will be candidates for transformation).
    * To mix cluster-scoped and namespaced resources in the same rule,
    * use an empty string ("") as one of the target namespaces.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#namespaces GkeBackupRestorePlan#namespaces}
    */
    readonly namespaces?: string[];
    /**
    * group_kinds block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#group_kinds GkeBackupRestorePlan#group_kinds}
    */
    readonly groupKinds?: GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKinds[] | cdktf.IResolvable;
}
export declare function gkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterToTerraform(struct?: GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterOutputReference | GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilter): any;
export declare function gkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterOutputReference | GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilter): any;
export declare class GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilter | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilter | undefined);
    private _jsonPath?;
    get jsonPath(): string;
    set jsonPath(value: string);
    resetJsonPath(): void;
    get jsonPathInput(): string | undefined;
    private _namespaces?;
    get namespaces(): string[];
    set namespaces(value: string[]);
    resetNamespaces(): void;
    get namespacesInput(): string[] | undefined;
    private _groupKinds;
    get groupKinds(): GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKindsList;
    putGroupKinds(value: GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKinds[] | cdktf.IResolvable): void;
    resetGroupKinds(): void;
    get groupKindsInput(): cdktf.IResolvable | GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterGroupKinds[] | undefined;
}
export interface GkeBackupRestorePlanRestoreConfigTransformationRules {
    /**
    * The description is a user specified string description
    * of the transformation rule.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#description GkeBackupRestorePlan#description}
    */
    readonly description?: string;
    /**
    * field_actions block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#field_actions GkeBackupRestorePlan#field_actions}
    */
    readonly fieldActions: GkeBackupRestorePlanRestoreConfigTransformationRulesFieldActions[] | cdktf.IResolvable;
    /**
    * resource_filter block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#resource_filter GkeBackupRestorePlan#resource_filter}
    */
    readonly resourceFilter?: GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilter;
}
export declare function gkeBackupRestorePlanRestoreConfigTransformationRulesToTerraform(struct?: GkeBackupRestorePlanRestoreConfigTransformationRules | cdktf.IResolvable): any;
export declare function gkeBackupRestorePlanRestoreConfigTransformationRulesToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigTransformationRules | cdktf.IResolvable): any;
export declare class GkeBackupRestorePlanRestoreConfigTransformationRulesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeBackupRestorePlanRestoreConfigTransformationRules | cdktf.IResolvable | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigTransformationRules | cdktf.IResolvable | undefined);
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _fieldActions;
    get fieldActions(): GkeBackupRestorePlanRestoreConfigTransformationRulesFieldActionsList;
    putFieldActions(value: GkeBackupRestorePlanRestoreConfigTransformationRulesFieldActions[] | cdktf.IResolvable): void;
    get fieldActionsInput(): cdktf.IResolvable | GkeBackupRestorePlanRestoreConfigTransformationRulesFieldActions[] | undefined;
    private _resourceFilter;
    get resourceFilter(): GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilterOutputReference;
    putResourceFilter(value: GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilter): void;
    resetResourceFilter(): void;
    get resourceFilterInput(): GkeBackupRestorePlanRestoreConfigTransformationRulesResourceFilter | undefined;
}
export declare class GkeBackupRestorePlanRestoreConfigTransformationRulesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeBackupRestorePlanRestoreConfigTransformationRules[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeBackupRestorePlanRestoreConfigTransformationRulesOutputReference;
}
export interface GkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindings {
    /**
    * Specifies the mechanism to be used to restore this volume data.
    * See https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke/reference/rest/v1/RestoreConfig#VolumeDataRestorePolicy
    * for more information on each policy option. Possible values: ["RESTORE_VOLUME_DATA_FROM_BACKUP", "REUSE_VOLUME_HANDLE_FROM_BACKUP", "NO_VOLUME_DATA_RESTORATION"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#policy GkeBackupRestorePlan#policy}
    */
    readonly policy: string;
    /**
    * The volume type, as determined by the PVC's
    * bound PV, to apply the policy to. Possible values: ["GCE_PERSISTENT_DISK"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#volume_type GkeBackupRestorePlan#volume_type}
    */
    readonly volumeType: string;
}
export declare function gkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindingsToTerraform(struct?: GkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindings | cdktf.IResolvable): any;
export declare function gkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindingsToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindings | cdktf.IResolvable): any;
export declare class GkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindingsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): GkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindings | cdktf.IResolvable | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindings | cdktf.IResolvable | undefined);
    private _policy?;
    get policy(): string;
    set policy(value: string);
    get policyInput(): string | undefined;
    private _volumeType?;
    get volumeType(): string;
    set volumeType(value: string);
    get volumeTypeInput(): string | undefined;
}
export declare class GkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindingsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindings[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): GkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindingsOutputReference;
}
export interface GkeBackupRestorePlanRestoreConfig {
    /**
    * If True, restore all namespaced resources in the Backup.
    * Setting this field to False will result in an error.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#all_namespaces GkeBackupRestorePlan#all_namespaces}
    */
    readonly allNamespaces?: boolean | cdktf.IResolvable;
    /**
    * Defines the behavior for handling the situation where cluster-scoped resources
    * being restored already exist in the target cluster.
    * This MUST be set to a value other than 'CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED'
    * if 'clusterResourceRestoreScope' is anyting other than 'noGroupKinds'.
    * See https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke/reference/rest/v1/RestoreConfig#clusterresourceconflictpolicy
    * for more information on each policy option. Possible values: ["USE_EXISTING_VERSION", "USE_BACKUP_VERSION"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#cluster_resource_conflict_policy GkeBackupRestorePlan#cluster_resource_conflict_policy}
    */
    readonly clusterResourceConflictPolicy?: string;
    /**
    * Defines the behavior for handling the situation where sets of namespaced resources
    * being restored already exist in the target cluster.
    * This MUST be set to a value other than 'NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED'
    * if the 'namespacedResourceRestoreScope' is anything other than 'noNamespaces'.
    * See https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke/reference/rest/v1/RestoreConfig#namespacedresourcerestoremode
    * for more information on each mode. Possible values: ["DELETE_AND_RESTORE", "FAIL_ON_CONFLICT", "MERGE_SKIP_ON_CONFLICT", "MERGE_REPLACE_VOLUME_ON_CONFLICT", "MERGE_REPLACE_ON_CONFLICT"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#namespaced_resource_restore_mode GkeBackupRestorePlan#namespaced_resource_restore_mode}
    */
    readonly namespacedResourceRestoreMode?: string;
    /**
    * Do not restore any namespaced resources if set to "True".
    * Specifying this field to "False" is not allowed.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#no_namespaces GkeBackupRestorePlan#no_namespaces}
    */
    readonly noNamespaces?: boolean | cdktf.IResolvable;
    /**
    * Specifies the mechanism to be used to restore volume data.
    * This should be set to a value other than 'NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED'
    * if the 'namespacedResourceRestoreScope' is anything other than 'noNamespaces'.
    * If not specified, it will be treated as 'NO_VOLUME_DATA_RESTORATION'.
    * See https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke/reference/rest/v1/RestoreConfig#VolumeDataRestorePolicy
    * for more information on each policy option. Possible values: ["RESTORE_VOLUME_DATA_FROM_BACKUP", "REUSE_VOLUME_HANDLE_FROM_BACKUP", "NO_VOLUME_DATA_RESTORATION"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#volume_data_restore_policy GkeBackupRestorePlan#volume_data_restore_policy}
    */
    readonly volumeDataRestorePolicy?: string;
    /**
    * cluster_resource_restore_scope block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#cluster_resource_restore_scope GkeBackupRestorePlan#cluster_resource_restore_scope}
    */
    readonly clusterResourceRestoreScope?: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScope;
    /**
    * excluded_namespaces block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#excluded_namespaces GkeBackupRestorePlan#excluded_namespaces}
    */
    readonly excludedNamespaces?: GkeBackupRestorePlanRestoreConfigExcludedNamespaces;
    /**
    * restore_order block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#restore_order GkeBackupRestorePlan#restore_order}
    */
    readonly restoreOrder?: GkeBackupRestorePlanRestoreConfigRestoreOrder;
    /**
    * selected_applications block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#selected_applications GkeBackupRestorePlan#selected_applications}
    */
    readonly selectedApplications?: GkeBackupRestorePlanRestoreConfigSelectedApplications;
    /**
    * selected_namespaces block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#selected_namespaces GkeBackupRestorePlan#selected_namespaces}
    */
    readonly selectedNamespaces?: GkeBackupRestorePlanRestoreConfigSelectedNamespaces;
    /**
    * transformation_rules block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#transformation_rules GkeBackupRestorePlan#transformation_rules}
    */
    readonly transformationRules?: GkeBackupRestorePlanRestoreConfigTransformationRules[] | cdktf.IResolvable;
    /**
    * volume_data_restore_policy_bindings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#volume_data_restore_policy_bindings GkeBackupRestorePlan#volume_data_restore_policy_bindings}
    */
    readonly volumeDataRestorePolicyBindings?: GkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindings[] | cdktf.IResolvable;
}
export declare function gkeBackupRestorePlanRestoreConfigToTerraform(struct?: GkeBackupRestorePlanRestoreConfigOutputReference | GkeBackupRestorePlanRestoreConfig): any;
export declare function gkeBackupRestorePlanRestoreConfigToHclTerraform(struct?: GkeBackupRestorePlanRestoreConfigOutputReference | GkeBackupRestorePlanRestoreConfig): any;
export declare class GkeBackupRestorePlanRestoreConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeBackupRestorePlanRestoreConfig | undefined;
    set internalValue(value: GkeBackupRestorePlanRestoreConfig | undefined);
    private _allNamespaces?;
    get allNamespaces(): boolean | cdktf.IResolvable;
    set allNamespaces(value: boolean | cdktf.IResolvable);
    resetAllNamespaces(): void;
    get allNamespacesInput(): boolean | cdktf.IResolvable | undefined;
    private _clusterResourceConflictPolicy?;
    get clusterResourceConflictPolicy(): string;
    set clusterResourceConflictPolicy(value: string);
    resetClusterResourceConflictPolicy(): void;
    get clusterResourceConflictPolicyInput(): string | undefined;
    private _namespacedResourceRestoreMode?;
    get namespacedResourceRestoreMode(): string;
    set namespacedResourceRestoreMode(value: string);
    resetNamespacedResourceRestoreMode(): void;
    get namespacedResourceRestoreModeInput(): string | undefined;
    private _noNamespaces?;
    get noNamespaces(): boolean | cdktf.IResolvable;
    set noNamespaces(value: boolean | cdktf.IResolvable);
    resetNoNamespaces(): void;
    get noNamespacesInput(): boolean | cdktf.IResolvable | undefined;
    private _volumeDataRestorePolicy?;
    get volumeDataRestorePolicy(): string;
    set volumeDataRestorePolicy(value: string);
    resetVolumeDataRestorePolicy(): void;
    get volumeDataRestorePolicyInput(): string | undefined;
    private _clusterResourceRestoreScope;
    get clusterResourceRestoreScope(): GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScopeOutputReference;
    putClusterResourceRestoreScope(value: GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScope): void;
    resetClusterResourceRestoreScope(): void;
    get clusterResourceRestoreScopeInput(): GkeBackupRestorePlanRestoreConfigClusterResourceRestoreScope | undefined;
    private _excludedNamespaces;
    get excludedNamespaces(): GkeBackupRestorePlanRestoreConfigExcludedNamespacesOutputReference;
    putExcludedNamespaces(value: GkeBackupRestorePlanRestoreConfigExcludedNamespaces): void;
    resetExcludedNamespaces(): void;
    get excludedNamespacesInput(): GkeBackupRestorePlanRestoreConfigExcludedNamespaces | undefined;
    private _restoreOrder;
    get restoreOrder(): GkeBackupRestorePlanRestoreConfigRestoreOrderOutputReference;
    putRestoreOrder(value: GkeBackupRestorePlanRestoreConfigRestoreOrder): void;
    resetRestoreOrder(): void;
    get restoreOrderInput(): GkeBackupRestorePlanRestoreConfigRestoreOrder | undefined;
    private _selectedApplications;
    get selectedApplications(): GkeBackupRestorePlanRestoreConfigSelectedApplicationsOutputReference;
    putSelectedApplications(value: GkeBackupRestorePlanRestoreConfigSelectedApplications): void;
    resetSelectedApplications(): void;
    get selectedApplicationsInput(): GkeBackupRestorePlanRestoreConfigSelectedApplications | undefined;
    private _selectedNamespaces;
    get selectedNamespaces(): GkeBackupRestorePlanRestoreConfigSelectedNamespacesOutputReference;
    putSelectedNamespaces(value: GkeBackupRestorePlanRestoreConfigSelectedNamespaces): void;
    resetSelectedNamespaces(): void;
    get selectedNamespacesInput(): GkeBackupRestorePlanRestoreConfigSelectedNamespaces | undefined;
    private _transformationRules;
    get transformationRules(): GkeBackupRestorePlanRestoreConfigTransformationRulesList;
    putTransformationRules(value: GkeBackupRestorePlanRestoreConfigTransformationRules[] | cdktf.IResolvable): void;
    resetTransformationRules(): void;
    get transformationRulesInput(): cdktf.IResolvable | GkeBackupRestorePlanRestoreConfigTransformationRules[] | undefined;
    private _volumeDataRestorePolicyBindings;
    get volumeDataRestorePolicyBindings(): GkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindingsList;
    putVolumeDataRestorePolicyBindings(value: GkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindings[] | cdktf.IResolvable): void;
    resetVolumeDataRestorePolicyBindings(): void;
    get volumeDataRestorePolicyBindingsInput(): cdktf.IResolvable | GkeBackupRestorePlanRestoreConfigVolumeDataRestorePolicyBindings[] | undefined;
}
export interface GkeBackupRestorePlanTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#create GkeBackupRestorePlan#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#delete GkeBackupRestorePlan#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#update GkeBackupRestorePlan#update}
    */
    readonly update?: string;
}
export declare function gkeBackupRestorePlanTimeoutsToTerraform(struct?: GkeBackupRestorePlanTimeouts | cdktf.IResolvable): any;
export declare function gkeBackupRestorePlanTimeoutsToHclTerraform(struct?: GkeBackupRestorePlanTimeouts | cdktf.IResolvable): any;
export declare class GkeBackupRestorePlanTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeBackupRestorePlanTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: GkeBackupRestorePlanTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan google_gke_backup_restore_plan}
*/
export declare class GkeBackupRestorePlan extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_gke_backup_restore_plan";
    /**
    * Generates CDKTF code for importing a GkeBackupRestorePlan resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the GkeBackupRestorePlan to import
    * @param importFromId The id of the existing GkeBackupRestorePlan that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the GkeBackupRestorePlan to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.27.0/docs/resources/gke_backup_restore_plan google_gke_backup_restore_plan} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options GkeBackupRestorePlanConfig
    */
    constructor(scope: Construct, id: string, config: GkeBackupRestorePlanConfig);
    private _backupPlan?;
    get backupPlan(): string;
    set backupPlan(value: string);
    get backupPlanInput(): string | undefined;
    private _cluster?;
    get cluster(): string;
    set cluster(value: string);
    get clusterInput(): string | undefined;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _effectiveLabels;
    get effectiveLabels(): cdktf.StringMap;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    get state(): string;
    get stateReason(): string;
    private _terraformLabels;
    get terraformLabels(): cdktf.StringMap;
    get uid(): string;
    private _restoreConfig;
    get restoreConfig(): GkeBackupRestorePlanRestoreConfigOutputReference;
    putRestoreConfig(value: GkeBackupRestorePlanRestoreConfig): void;
    get restoreConfigInput(): GkeBackupRestorePlanRestoreConfig | undefined;
    private _timeouts;
    get timeouts(): GkeBackupRestorePlanTimeoutsOutputReference;
    putTimeouts(value: GkeBackupRestorePlanTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | GkeBackupRestorePlanTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
