/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface GkeHubFeatureMembershipConfig extends cdktf.TerraformMetaArguments {
    /**
    * The name of the feature
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#feature GkeHubFeatureMembership#feature}
    */
    readonly feature: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#id GkeHubFeatureMembership#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;
    /**
    * The location of the feature
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#location GkeHubFeatureMembership#location}
    */
    readonly location: string;
    /**
    * The name of the membership
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#membership GkeHubFeatureMembership#membership}
    */
    readonly membership: string;
    /**
    * The location of the membership
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#membership_location GkeHubFeatureMembership#membership_location}
    */
    readonly membershipLocation?: string;
    /**
    * The project of the feature
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#project GkeHubFeatureMembership#project}
    */
    readonly project?: string;
    /**
    * configmanagement block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#configmanagement GkeHubFeatureMembership#configmanagement}
    */
    readonly configmanagement?: GkeHubFeatureMembershipConfigmanagement;
    /**
    * mesh block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#mesh GkeHubFeatureMembership#mesh}
    */
    readonly mesh?: GkeHubFeatureMembershipMesh;
    /**
    * policycontroller block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#policycontroller GkeHubFeatureMembership#policycontroller}
    */
    readonly policycontroller?: GkeHubFeatureMembershipPolicycontroller;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#timeouts GkeHubFeatureMembership#timeouts}
    */
    readonly timeouts?: GkeHubFeatureMembershipTimeouts;
}
export interface GkeHubFeatureMembershipConfigmanagementBinauthz {
    /**
    * Whether binauthz is enabled in this cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#enabled GkeHubFeatureMembership#enabled}
    */
    readonly enabled?: boolean | cdktf.IResolvable;
}
export declare function gkeHubFeatureMembershipConfigmanagementBinauthzToTerraform(struct?: GkeHubFeatureMembershipConfigmanagementBinauthzOutputReference | GkeHubFeatureMembershipConfigmanagementBinauthz): any;
export declare function gkeHubFeatureMembershipConfigmanagementBinauthzToHclTerraform(struct?: GkeHubFeatureMembershipConfigmanagementBinauthzOutputReference | GkeHubFeatureMembershipConfigmanagementBinauthz): any;
export declare class GkeHubFeatureMembershipConfigmanagementBinauthzOutputReference 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(): GkeHubFeatureMembershipConfigmanagementBinauthz | undefined;
    set internalValue(value: GkeHubFeatureMembershipConfigmanagementBinauthz | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    resetEnabled(): void;
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers {
    /**
    * The name of the container.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#container_name GkeHubFeatureMembership#container_name}
    */
    readonly containerName?: string;
    /**
    * The CPU limit of the container.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#cpu_limit GkeHubFeatureMembership#cpu_limit}
    */
    readonly cpuLimit?: string;
    /**
    * The CPU request of the container.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#cpu_request GkeHubFeatureMembership#cpu_request}
    */
    readonly cpuRequest?: string;
    /**
    * The memory limit of the container.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#memory_limit GkeHubFeatureMembership#memory_limit}
    */
    readonly memoryLimit?: string;
    /**
    * The memory request of the container.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#memory_request GkeHubFeatureMembership#memory_request}
    */
    readonly memoryRequest?: string;
}
export declare function gkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainersToTerraform(struct?: GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers | cdktf.IResolvable): any;
export declare function gkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainersToHclTerraform(struct?: GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers | cdktf.IResolvable): any;
export declare class GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainersOutputReference 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(): GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers | cdktf.IResolvable | undefined;
    set internalValue(value: GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers | cdktf.IResolvable | undefined);
    private _containerName?;
    get containerName(): string;
    set containerName(value: string);
    resetContainerName(): void;
    get containerNameInput(): string | undefined;
    private _cpuLimit?;
    get cpuLimit(): string;
    set cpuLimit(value: string);
    resetCpuLimit(): void;
    get cpuLimitInput(): string | undefined;
    private _cpuRequest?;
    get cpuRequest(): string;
    set cpuRequest(value: string);
    resetCpuRequest(): void;
    get cpuRequestInput(): string | undefined;
    private _memoryLimit?;
    get memoryLimit(): string;
    set memoryLimit(value: string);
    resetMemoryLimit(): void;
    get memoryLimitInput(): string | undefined;
    private _memoryRequest?;
    get memoryRequest(): string;
    set memoryRequest(value: string);
    resetMemoryRequest(): void;
    get memoryRequestInput(): string | undefined;
}
export declare class GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers[] | 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): GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainersOutputReference;
}
export interface GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverrides {
    /**
    * The name of the Deployment.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#deployment_name GkeHubFeatureMembership#deployment_name}
    */
    readonly deploymentName?: string;
    /**
    * The namespace of the Deployment.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#deployment_namespace GkeHubFeatureMembership#deployment_namespace}
    */
    readonly deploymentNamespace?: string;
    /**
    * containers block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#containers GkeHubFeatureMembership#containers}
    */
    readonly containers?: GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers[] | cdktf.IResolvable;
}
export declare function gkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesToTerraform(struct?: GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverrides | cdktf.IResolvable): any;
export declare function gkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesToHclTerraform(struct?: GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverrides | cdktf.IResolvable): any;
export declare class GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesOutputReference 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(): GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverrides | cdktf.IResolvable | undefined;
    set internalValue(value: GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverrides | cdktf.IResolvable | undefined);
    private _deploymentName?;
    get deploymentName(): string;
    set deploymentName(value: string);
    resetDeploymentName(): void;
    get deploymentNameInput(): string | undefined;
    private _deploymentNamespace?;
    get deploymentNamespace(): string;
    set deploymentNamespace(value: string);
    resetDeploymentNamespace(): void;
    get deploymentNamespaceInput(): string | undefined;
    private _containers;
    get containers(): GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainersList;
    putContainers(value: GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers[] | cdktf.IResolvable): void;
    resetContainers(): void;
    get containersInput(): cdktf.IResolvable | GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers[] | undefined;
}
export declare class GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverrides[] | 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): GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesOutputReference;
}
export interface GkeHubFeatureMembershipConfigmanagementConfigSyncGit {
    /**
    * The GCP Service Account Email used for auth when secretType is gcpServiceAccount.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#gcp_service_account_email GkeHubFeatureMembership#gcp_service_account_email}
    */
    readonly gcpServiceAccountEmail?: string;
    /**
    * URL for the HTTPS proxy to be used when communicating with the Git repo.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#https_proxy GkeHubFeatureMembership#https_proxy}
    */
    readonly httpsProxy?: string;
    /**
    * The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#policy_dir GkeHubFeatureMembership#policy_dir}
    */
    readonly policyDir?: string;
    /**
    * Type of secret configured for access to the Git repo. Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount or none. The validation of this is case-sensitive.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#secret_type GkeHubFeatureMembership#secret_type}
    */
    readonly secretType?: string;
    /**
    * The branch of the repository to sync from. Default: master.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#sync_branch GkeHubFeatureMembership#sync_branch}
    */
    readonly syncBranch?: string;
    /**
    * The URL of the Git repository to use as the source of truth.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#sync_repo GkeHubFeatureMembership#sync_repo}
    */
    readonly syncRepo?: string;
    /**
    * Git revision (tag or hash) to check out. Default HEAD.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#sync_rev GkeHubFeatureMembership#sync_rev}
    */
    readonly syncRev?: string;
    /**
    * Period in seconds between consecutive syncs. Default: 15.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#sync_wait_secs GkeHubFeatureMembership#sync_wait_secs}
    */
    readonly syncWaitSecs?: string;
}
export declare function gkeHubFeatureMembershipConfigmanagementConfigSyncGitToTerraform(struct?: GkeHubFeatureMembershipConfigmanagementConfigSyncGitOutputReference | GkeHubFeatureMembershipConfigmanagementConfigSyncGit): any;
export declare function gkeHubFeatureMembershipConfigmanagementConfigSyncGitToHclTerraform(struct?: GkeHubFeatureMembershipConfigmanagementConfigSyncGitOutputReference | GkeHubFeatureMembershipConfigmanagementConfigSyncGit): any;
export declare class GkeHubFeatureMembershipConfigmanagementConfigSyncGitOutputReference 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(): GkeHubFeatureMembershipConfigmanagementConfigSyncGit | undefined;
    set internalValue(value: GkeHubFeatureMembershipConfigmanagementConfigSyncGit | undefined);
    private _gcpServiceAccountEmail?;
    get gcpServiceAccountEmail(): string;
    set gcpServiceAccountEmail(value: string);
    resetGcpServiceAccountEmail(): void;
    get gcpServiceAccountEmailInput(): string | undefined;
    private _httpsProxy?;
    get httpsProxy(): string;
    set httpsProxy(value: string);
    resetHttpsProxy(): void;
    get httpsProxyInput(): string | undefined;
    private _policyDir?;
    get policyDir(): string;
    set policyDir(value: string);
    resetPolicyDir(): void;
    get policyDirInput(): string | undefined;
    private _secretType?;
    get secretType(): string;
    set secretType(value: string);
    resetSecretType(): void;
    get secretTypeInput(): string | undefined;
    private _syncBranch?;
    get syncBranch(): string;
    set syncBranch(value: string);
    resetSyncBranch(): void;
    get syncBranchInput(): string | undefined;
    private _syncRepo?;
    get syncRepo(): string;
    set syncRepo(value: string);
    resetSyncRepo(): void;
    get syncRepoInput(): string | undefined;
    private _syncRev?;
    get syncRev(): string;
    set syncRev(value: string);
    resetSyncRev(): void;
    get syncRevInput(): string | undefined;
    private _syncWaitSecs?;
    get syncWaitSecs(): string;
    set syncWaitSecs(value: string);
    resetSyncWaitSecs(): void;
    get syncWaitSecsInput(): string | undefined;
}
export interface GkeHubFeatureMembershipConfigmanagementConfigSyncOci {
    /**
    * The GCP Service Account Email used for auth when secret_type is gcpserviceaccount.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#gcp_service_account_email GkeHubFeatureMembership#gcp_service_account_email}
    */
    readonly gcpServiceAccountEmail?: string;
    /**
    * The absolute path of the directory that contains the local resources. Default: the root directory of the image.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#policy_dir GkeHubFeatureMembership#policy_dir}
    */
    readonly policyDir?: string;
    /**
    * Type of secret configured for access to the OCI Image. Must be one of gcenode, gcpserviceaccount or none. The validation of this is case-sensitive.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#secret_type GkeHubFeatureMembership#secret_type}
    */
    readonly secretType?: string;
    /**
    * The OCI image repository URL for the package to sync from. e.g. LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#sync_repo GkeHubFeatureMembership#sync_repo}
    */
    readonly syncRepo?: string;
    /**
    * Period in seconds(int64 format) between consecutive syncs. Default: 15.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#sync_wait_secs GkeHubFeatureMembership#sync_wait_secs}
    */
    readonly syncWaitSecs?: string;
}
export declare function gkeHubFeatureMembershipConfigmanagementConfigSyncOciToTerraform(struct?: GkeHubFeatureMembershipConfigmanagementConfigSyncOciOutputReference | GkeHubFeatureMembershipConfigmanagementConfigSyncOci): any;
export declare function gkeHubFeatureMembershipConfigmanagementConfigSyncOciToHclTerraform(struct?: GkeHubFeatureMembershipConfigmanagementConfigSyncOciOutputReference | GkeHubFeatureMembershipConfigmanagementConfigSyncOci): any;
export declare class GkeHubFeatureMembershipConfigmanagementConfigSyncOciOutputReference 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(): GkeHubFeatureMembershipConfigmanagementConfigSyncOci | undefined;
    set internalValue(value: GkeHubFeatureMembershipConfigmanagementConfigSyncOci | undefined);
    private _gcpServiceAccountEmail?;
    get gcpServiceAccountEmail(): string;
    set gcpServiceAccountEmail(value: string);
    resetGcpServiceAccountEmail(): void;
    get gcpServiceAccountEmailInput(): string | undefined;
    private _policyDir?;
    get policyDir(): string;
    set policyDir(value: string);
    resetPolicyDir(): void;
    get policyDirInput(): string | undefined;
    private _secretType?;
    get secretType(): string;
    set secretType(value: string);
    resetSecretType(): void;
    get secretTypeInput(): string | undefined;
    private _syncRepo?;
    get syncRepo(): string;
    set syncRepo(value: string);
    resetSyncRepo(): void;
    get syncRepoInput(): string | undefined;
    private _syncWaitSecs?;
    get syncWaitSecs(): string;
    set syncWaitSecs(value: string);
    resetSyncWaitSecs(): void;
    get syncWaitSecsInput(): string | undefined;
}
export interface GkeHubFeatureMembershipConfigmanagementConfigSync {
    /**
    * Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#enabled GkeHubFeatureMembership#enabled}
    */
    readonly enabled?: boolean | cdktf.IResolvable;
    /**
    * Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#metrics_gcp_service_account_email GkeHubFeatureMembership#metrics_gcp_service_account_email}
    */
    readonly metricsGcpServiceAccountEmail?: string;
    /**
    * Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#prevent_drift GkeHubFeatureMembership#prevent_drift}
    */
    readonly preventDrift?: boolean | cdktf.IResolvable;
    /**
    * Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured" mode.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#source_format GkeHubFeatureMembership#source_format}
    */
    readonly sourceFormat?: string;
    /**
    * Set to true to stop syncing configs for a single cluster. Default: false.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#stop_syncing GkeHubFeatureMembership#stop_syncing}
    */
    readonly stopSyncing?: boolean | cdktf.IResolvable;
    /**
    * deployment_overrides block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#deployment_overrides GkeHubFeatureMembership#deployment_overrides}
    */
    readonly deploymentOverrides?: GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverrides[] | cdktf.IResolvable;
    /**
    * git block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#git GkeHubFeatureMembership#git}
    */
    readonly git?: GkeHubFeatureMembershipConfigmanagementConfigSyncGit;
    /**
    * oci block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#oci GkeHubFeatureMembership#oci}
    */
    readonly oci?: GkeHubFeatureMembershipConfigmanagementConfigSyncOci;
}
export declare function gkeHubFeatureMembershipConfigmanagementConfigSyncToTerraform(struct?: GkeHubFeatureMembershipConfigmanagementConfigSyncOutputReference | GkeHubFeatureMembershipConfigmanagementConfigSync): any;
export declare function gkeHubFeatureMembershipConfigmanagementConfigSyncToHclTerraform(struct?: GkeHubFeatureMembershipConfigmanagementConfigSyncOutputReference | GkeHubFeatureMembershipConfigmanagementConfigSync): any;
export declare class GkeHubFeatureMembershipConfigmanagementConfigSyncOutputReference 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(): GkeHubFeatureMembershipConfigmanagementConfigSync | undefined;
    set internalValue(value: GkeHubFeatureMembershipConfigmanagementConfigSync | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    resetEnabled(): void;
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
    private _metricsGcpServiceAccountEmail?;
    get metricsGcpServiceAccountEmail(): string;
    set metricsGcpServiceAccountEmail(value: string);
    resetMetricsGcpServiceAccountEmail(): void;
    get metricsGcpServiceAccountEmailInput(): string | undefined;
    private _preventDrift?;
    get preventDrift(): boolean | cdktf.IResolvable;
    set preventDrift(value: boolean | cdktf.IResolvable);
    resetPreventDrift(): void;
    get preventDriftInput(): boolean | cdktf.IResolvable | undefined;
    private _sourceFormat?;
    get sourceFormat(): string;
    set sourceFormat(value: string);
    resetSourceFormat(): void;
    get sourceFormatInput(): string | undefined;
    private _stopSyncing?;
    get stopSyncing(): boolean | cdktf.IResolvable;
    set stopSyncing(value: boolean | cdktf.IResolvable);
    resetStopSyncing(): void;
    get stopSyncingInput(): boolean | cdktf.IResolvable | undefined;
    private _deploymentOverrides;
    get deploymentOverrides(): GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesList;
    putDeploymentOverrides(value: GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverrides[] | cdktf.IResolvable): void;
    resetDeploymentOverrides(): void;
    get deploymentOverridesInput(): cdktf.IResolvable | GkeHubFeatureMembershipConfigmanagementConfigSyncDeploymentOverrides[] | undefined;
    private _git;
    get git(): GkeHubFeatureMembershipConfigmanagementConfigSyncGitOutputReference;
    putGit(value: GkeHubFeatureMembershipConfigmanagementConfigSyncGit): void;
    resetGit(): void;
    get gitInput(): GkeHubFeatureMembershipConfigmanagementConfigSyncGit | undefined;
    private _oci;
    get oci(): GkeHubFeatureMembershipConfigmanagementConfigSyncOciOutputReference;
    putOci(value: GkeHubFeatureMembershipConfigmanagementConfigSyncOci): void;
    resetOci(): void;
    get ociInput(): GkeHubFeatureMembershipConfigmanagementConfigSyncOci | undefined;
}
export interface GkeHubFeatureMembershipConfigmanagementHierarchyController {
    /**
    * Whether hierarchical resource quota is enabled in this cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#enable_hierarchical_resource_quota GkeHubFeatureMembership#enable_hierarchical_resource_quota}
    */
    readonly enableHierarchicalResourceQuota?: boolean | cdktf.IResolvable;
    /**
    * Whether pod tree labels are enabled in this cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#enable_pod_tree_labels GkeHubFeatureMembership#enable_pod_tree_labels}
    */
    readonly enablePodTreeLabels?: boolean | cdktf.IResolvable;
    /**
    * **DEPRECATED** Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#enabled GkeHubFeatureMembership#enabled}
    */
    readonly enabled?: boolean | cdktf.IResolvable;
}
export declare function gkeHubFeatureMembershipConfigmanagementHierarchyControllerToTerraform(struct?: GkeHubFeatureMembershipConfigmanagementHierarchyControllerOutputReference | GkeHubFeatureMembershipConfigmanagementHierarchyController): any;
export declare function gkeHubFeatureMembershipConfigmanagementHierarchyControllerToHclTerraform(struct?: GkeHubFeatureMembershipConfigmanagementHierarchyControllerOutputReference | GkeHubFeatureMembershipConfigmanagementHierarchyController): any;
export declare class GkeHubFeatureMembershipConfigmanagementHierarchyControllerOutputReference 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(): GkeHubFeatureMembershipConfigmanagementHierarchyController | undefined;
    set internalValue(value: GkeHubFeatureMembershipConfigmanagementHierarchyController | undefined);
    private _enableHierarchicalResourceQuota?;
    get enableHierarchicalResourceQuota(): boolean | cdktf.IResolvable;
    set enableHierarchicalResourceQuota(value: boolean | cdktf.IResolvable);
    resetEnableHierarchicalResourceQuota(): void;
    get enableHierarchicalResourceQuotaInput(): boolean | cdktf.IResolvable | undefined;
    private _enablePodTreeLabels?;
    get enablePodTreeLabels(): boolean | cdktf.IResolvable;
    set enablePodTreeLabels(value: boolean | cdktf.IResolvable);
    resetEnablePodTreeLabels(): void;
    get enablePodTreeLabelsInput(): boolean | cdktf.IResolvable | undefined;
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    resetEnabled(): void;
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoring {
    /**
    *  Specifies the list of backends Policy Controller will export to. Specifying an empty value `[]` disables metrics export.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#backends GkeHubFeatureMembership#backends}
    */
    readonly backends?: string[];
}
export declare function gkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoringToTerraform(struct?: GkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoringOutputReference | GkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoring): any;
export declare function gkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoringToHclTerraform(struct?: GkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoringOutputReference | GkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoring): any;
export declare class GkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoringOutputReference 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(): GkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoring | undefined;
    set internalValue(value: GkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoring | undefined);
    private _backends?;
    get backends(): string[];
    set backends(value: string[]);
    resetBackends(): void;
    get backendsInput(): string[] | undefined;
}
export interface GkeHubFeatureMembershipConfigmanagementPolicyController {
    /**
    * Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#audit_interval_seconds GkeHubFeatureMembership#audit_interval_seconds}
    */
    readonly auditIntervalSeconds?: string;
    /**
    * Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#enabled GkeHubFeatureMembership#enabled}
    */
    readonly enabled?: boolean | cdktf.IResolvable;
    /**
    * The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#exemptable_namespaces GkeHubFeatureMembership#exemptable_namespaces}
    */
    readonly exemptableNamespaces?: string[];
    /**
    * Logs all denies and dry run failures.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#log_denies_enabled GkeHubFeatureMembership#log_denies_enabled}
    */
    readonly logDeniesEnabled?: boolean | cdktf.IResolvable;
    /**
    * Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#mutation_enabled GkeHubFeatureMembership#mutation_enabled}
    */
    readonly mutationEnabled?: boolean | cdktf.IResolvable;
    /**
    * Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#referential_rules_enabled GkeHubFeatureMembership#referential_rules_enabled}
    */
    readonly referentialRulesEnabled?: boolean | cdktf.IResolvable;
    /**
    * Installs the default template library along with Policy Controller.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#template_library_installed GkeHubFeatureMembership#template_library_installed}
    */
    readonly templateLibraryInstalled?: boolean | cdktf.IResolvable;
    /**
    * monitoring block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#monitoring GkeHubFeatureMembership#monitoring}
    */
    readonly monitoring?: GkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoring;
}
export declare function gkeHubFeatureMembershipConfigmanagementPolicyControllerToTerraform(struct?: GkeHubFeatureMembershipConfigmanagementPolicyControllerOutputReference | GkeHubFeatureMembershipConfigmanagementPolicyController): any;
export declare function gkeHubFeatureMembershipConfigmanagementPolicyControllerToHclTerraform(struct?: GkeHubFeatureMembershipConfigmanagementPolicyControllerOutputReference | GkeHubFeatureMembershipConfigmanagementPolicyController): any;
export declare class GkeHubFeatureMembershipConfigmanagementPolicyControllerOutputReference 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(): GkeHubFeatureMembershipConfigmanagementPolicyController | undefined;
    set internalValue(value: GkeHubFeatureMembershipConfigmanagementPolicyController | undefined);
    private _auditIntervalSeconds?;
    get auditIntervalSeconds(): string;
    set auditIntervalSeconds(value: string);
    resetAuditIntervalSeconds(): void;
    get auditIntervalSecondsInput(): string | undefined;
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    resetEnabled(): void;
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
    private _exemptableNamespaces?;
    get exemptableNamespaces(): string[];
    set exemptableNamespaces(value: string[]);
    resetExemptableNamespaces(): void;
    get exemptableNamespacesInput(): string[] | undefined;
    private _logDeniesEnabled?;
    get logDeniesEnabled(): boolean | cdktf.IResolvable;
    set logDeniesEnabled(value: boolean | cdktf.IResolvable);
    resetLogDeniesEnabled(): void;
    get logDeniesEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _mutationEnabled?;
    get mutationEnabled(): boolean | cdktf.IResolvable;
    set mutationEnabled(value: boolean | cdktf.IResolvable);
    resetMutationEnabled(): void;
    get mutationEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _referentialRulesEnabled?;
    get referentialRulesEnabled(): boolean | cdktf.IResolvable;
    set referentialRulesEnabled(value: boolean | cdktf.IResolvable);
    resetReferentialRulesEnabled(): void;
    get referentialRulesEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _templateLibraryInstalled?;
    get templateLibraryInstalled(): boolean | cdktf.IResolvable;
    set templateLibraryInstalled(value: boolean | cdktf.IResolvable);
    resetTemplateLibraryInstalled(): void;
    get templateLibraryInstalledInput(): boolean | cdktf.IResolvable | undefined;
    private _monitoring;
    get monitoring(): GkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoringOutputReference;
    putMonitoring(value: GkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoring): void;
    resetMonitoring(): void;
    get monitoringInput(): GkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoring | undefined;
}
export interface GkeHubFeatureMembershipConfigmanagement {
    /**
    * Set this field to MANAGEMENT_AUTOMATIC to enable Config Sync auto-upgrades, and set this field to MANAGEMENT_MANUAL or MANAGEMENT_UNSPECIFIED to disable Config Sync auto-upgrades.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#management GkeHubFeatureMembership#management}
    */
    readonly management?: string;
    /**
    * Optional. Version of ACM to install. Defaults to the latest version.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#version GkeHubFeatureMembership#version}
    */
    readonly version?: string;
    /**
    * binauthz block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#binauthz GkeHubFeatureMembership#binauthz}
    */
    readonly binauthz?: GkeHubFeatureMembershipConfigmanagementBinauthz;
    /**
    * config_sync block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#config_sync GkeHubFeatureMembership#config_sync}
    */
    readonly configSync?: GkeHubFeatureMembershipConfigmanagementConfigSync;
    /**
    * hierarchy_controller block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#hierarchy_controller GkeHubFeatureMembership#hierarchy_controller}
    */
    readonly hierarchyController?: GkeHubFeatureMembershipConfigmanagementHierarchyController;
    /**
    * policy_controller block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#policy_controller GkeHubFeatureMembership#policy_controller}
    */
    readonly policyController?: GkeHubFeatureMembershipConfigmanagementPolicyController;
}
export declare function gkeHubFeatureMembershipConfigmanagementToTerraform(struct?: GkeHubFeatureMembershipConfigmanagementOutputReference | GkeHubFeatureMembershipConfigmanagement): any;
export declare function gkeHubFeatureMembershipConfigmanagementToHclTerraform(struct?: GkeHubFeatureMembershipConfigmanagementOutputReference | GkeHubFeatureMembershipConfigmanagement): any;
export declare class GkeHubFeatureMembershipConfigmanagementOutputReference 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(): GkeHubFeatureMembershipConfigmanagement | undefined;
    set internalValue(value: GkeHubFeatureMembershipConfigmanagement | undefined);
    private _management?;
    get management(): string;
    set management(value: string);
    resetManagement(): void;
    get managementInput(): string | undefined;
    private _version?;
    get version(): string;
    set version(value: string);
    resetVersion(): void;
    get versionInput(): string | undefined;
    private _binauthz;
    get binauthz(): GkeHubFeatureMembershipConfigmanagementBinauthzOutputReference;
    putBinauthz(value: GkeHubFeatureMembershipConfigmanagementBinauthz): void;
    resetBinauthz(): void;
    get binauthzInput(): GkeHubFeatureMembershipConfigmanagementBinauthz | undefined;
    private _configSync;
    get configSync(): GkeHubFeatureMembershipConfigmanagementConfigSyncOutputReference;
    putConfigSync(value: GkeHubFeatureMembershipConfigmanagementConfigSync): void;
    resetConfigSync(): void;
    get configSyncInput(): GkeHubFeatureMembershipConfigmanagementConfigSync | undefined;
    private _hierarchyController;
    get hierarchyController(): GkeHubFeatureMembershipConfigmanagementHierarchyControllerOutputReference;
    putHierarchyController(value: GkeHubFeatureMembershipConfigmanagementHierarchyController): void;
    resetHierarchyController(): void;
    get hierarchyControllerInput(): GkeHubFeatureMembershipConfigmanagementHierarchyController | undefined;
    private _policyController;
    get policyController(): GkeHubFeatureMembershipConfigmanagementPolicyControllerOutputReference;
    putPolicyController(value: GkeHubFeatureMembershipConfigmanagementPolicyController): void;
    resetPolicyController(): void;
    get policyControllerInput(): GkeHubFeatureMembershipConfigmanagementPolicyController | undefined;
}
export interface GkeHubFeatureMembershipMesh {
    /**
    * **DEPRECATED** Whether to automatically manage Service Mesh control planes. Possible values: CONTROL_PLANE_MANAGEMENT_UNSPECIFIED, AUTOMATIC, MANUAL
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#control_plane GkeHubFeatureMembership#control_plane}
    */
    readonly controlPlane?: string;
    /**
    * Whether to automatically manage Service Mesh. Possible values: MANAGEMENT_UNSPECIFIED, MANAGEMENT_AUTOMATIC, MANAGEMENT_MANUAL
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#management GkeHubFeatureMembership#management}
    */
    readonly management?: string;
}
export declare function gkeHubFeatureMembershipMeshToTerraform(struct?: GkeHubFeatureMembershipMeshOutputReference | GkeHubFeatureMembershipMesh): any;
export declare function gkeHubFeatureMembershipMeshToHclTerraform(struct?: GkeHubFeatureMembershipMeshOutputReference | GkeHubFeatureMembershipMesh): any;
export declare class GkeHubFeatureMembershipMeshOutputReference 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(): GkeHubFeatureMembershipMesh | undefined;
    set internalValue(value: GkeHubFeatureMembershipMesh | undefined);
    private _controlPlane?;
    get controlPlane(): string;
    set controlPlane(value: string);
    resetControlPlane(): void;
    get controlPlaneInput(): string | undefined;
    private _management?;
    get management(): string;
    set management(value: string);
    resetManagement(): void;
    get managementInput(): string | undefined;
}
export interface GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits {
    /**
    * CPU requirement expressed in Kubernetes resource units.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#cpu GkeHubFeatureMembership#cpu}
    */
    readonly cpu?: string;
    /**
    * Memory requirement expressed in Kubernetes resource units.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#memory GkeHubFeatureMembership#memory}
    */
    readonly memory?: string;
}
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimitsToTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimitsOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits): any;
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimitsToHclTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimitsOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits): any;
export declare class GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimitsOutputReference 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(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits | undefined;
    set internalValue(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits | undefined);
    private _cpu?;
    get cpu(): string;
    set cpu(value: string);
    resetCpu(): void;
    get cpuInput(): string | undefined;
    private _memory?;
    get memory(): string;
    set memory(value: string);
    resetMemory(): void;
    get memoryInput(): string | undefined;
}
export interface GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests {
    /**
    * CPU requirement expressed in Kubernetes resource units.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#cpu GkeHubFeatureMembership#cpu}
    */
    readonly cpu?: string;
    /**
    * Memory requirement expressed in Kubernetes resource units.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#memory GkeHubFeatureMembership#memory}
    */
    readonly memory?: string;
}
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequestsToTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequestsOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests): any;
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequestsToHclTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequestsOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests): any;
export declare class GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequestsOutputReference 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(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests | undefined;
    set internalValue(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests | undefined);
    private _cpu?;
    get cpu(): string;
    set cpu(value: string);
    resetCpu(): void;
    get cpuInput(): string | undefined;
    private _memory?;
    get memory(): string;
    set memory(value: string);
    resetMemory(): void;
    get memoryInput(): string | undefined;
}
export interface GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources {
    /**
    * limits block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#limits GkeHubFeatureMembership#limits}
    */
    readonly limits?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits;
    /**
    * requests block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#requests GkeHubFeatureMembership#requests}
    */
    readonly requests?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests;
}
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesToTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources): any;
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesToHclTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources): any;
export declare class GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesOutputReference 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(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources | undefined;
    set internalValue(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources | undefined);
    private _limits;
    get limits(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimitsOutputReference;
    putLimits(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits): void;
    resetLimits(): void;
    get limitsInput(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits | undefined;
    private _requests;
    get requests(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequestsOutputReference;
    putRequests(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests): void;
    resetRequests(): void;
    get requestsInput(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests | undefined;
}
export interface GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations {
    /**
    * Matches a taint effect.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#effect GkeHubFeatureMembership#effect}
    */
    readonly effect?: string;
    /**
    * Matches a taint key (not necessarily unique).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#key GkeHubFeatureMembership#key}
    */
    readonly key?: string;
    /**
    * Matches a taint operator.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#operator GkeHubFeatureMembership#operator}
    */
    readonly operator?: string;
    /**
    * Matches a taint value.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#value GkeHubFeatureMembership#value}
    */
    readonly value?: string;
}
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerationsToTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations | cdktf.IResolvable): any;
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerationsToHclTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations | cdktf.IResolvable): any;
export declare class GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerationsOutputReference 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(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations | cdktf.IResolvable | undefined;
    set internalValue(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations | cdktf.IResolvable | undefined);
    private _effect?;
    get effect(): string;
    set effect(value: string);
    resetEffect(): void;
    get effectInput(): string | undefined;
    private _key?;
    get key(): string;
    set key(value: string);
    resetKey(): void;
    get keyInput(): string | undefined;
    private _operator?;
    get operator(): string;
    set operator(value: string);
    resetOperator(): void;
    get operatorInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    resetValue(): void;
    get valueInput(): string | undefined;
}
export declare class GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerationsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations[] | 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): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerationsOutputReference;
}
export interface GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs {
    /**
    * The name for the key in the map for which this object is mapped to in the API
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#component_name GkeHubFeatureMembership#component_name}
    */
    readonly componentName: string;
    /**
    * Pod affinity configuration. Possible values: AFFINITY_UNSPECIFIED, NO_AFFINITY, ANTI_AFFINITY
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#pod_affinity GkeHubFeatureMembership#pod_affinity}
    */
    readonly podAffinity?: string;
    /**
    * Pod replica count.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#replica_count GkeHubFeatureMembership#replica_count}
    */
    readonly replicaCount?: number;
    /**
    * container_resources block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#container_resources GkeHubFeatureMembership#container_resources}
    */
    readonly containerResources?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources;
    /**
    * pod_tolerations block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#pod_tolerations GkeHubFeatureMembership#pod_tolerations}
    */
    readonly podTolerations?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations[] | cdktf.IResolvable;
}
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsToTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs | cdktf.IResolvable): any;
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsToHclTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs | cdktf.IResolvable): any;
export declare class GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsOutputReference 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(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs | cdktf.IResolvable | undefined;
    set internalValue(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs | cdktf.IResolvable | undefined);
    private _componentName?;
    get componentName(): string;
    set componentName(value: string);
    get componentNameInput(): string | undefined;
    private _podAffinity?;
    get podAffinity(): string;
    set podAffinity(value: string);
    resetPodAffinity(): void;
    get podAffinityInput(): string | undefined;
    private _replicaCount?;
    get replicaCount(): number;
    set replicaCount(value: number);
    resetReplicaCount(): void;
    get replicaCountInput(): number | undefined;
    private _containerResources;
    get containerResources(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesOutputReference;
    putContainerResources(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources): void;
    resetContainerResources(): void;
    get containerResourcesInput(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources | undefined;
    private _podTolerations;
    get podTolerations(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerationsList;
    putPodTolerations(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations[] | cdktf.IResolvable): void;
    resetPodTolerations(): void;
    get podTolerationsInput(): cdktf.IResolvable | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations[] | undefined;
}
export declare class GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs[] | 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): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsOutputReference;
}
export interface GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring {
    /**
    *  Specifies the list of backends Policy Controller will export to. Specifying an empty value `[]` disables metrics export.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#backends GkeHubFeatureMembership#backends}
    */
    readonly backends?: string[];
}
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringToTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring): any;
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringToHclTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring): any;
export declare class GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringOutputReference 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(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring | undefined;
    set internalValue(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring | undefined);
    private _backends?;
    get backends(): string[];
    set backends(value: string[]);
    resetBackends(): void;
    get backendsInput(): string[] | undefined;
}
export interface GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles {
    /**
    * The name for the key in the map for which this object is mapped to in the API
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#bundle_name GkeHubFeatureMembership#bundle_name}
    */
    readonly bundleName: string;
    /**
    * The set of namespaces to be exempted from the bundle.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#exempted_namespaces GkeHubFeatureMembership#exempted_namespaces}
    */
    readonly exemptedNamespaces?: string[];
}
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesToTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles | cdktf.IResolvable): any;
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesToHclTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles | cdktf.IResolvable): any;
export declare class GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesOutputReference 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(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles | cdktf.IResolvable | undefined;
    set internalValue(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles | cdktf.IResolvable | undefined);
    private _bundleName?;
    get bundleName(): string;
    set bundleName(value: string);
    get bundleNameInput(): string | undefined;
    private _exemptedNamespaces?;
    get exemptedNamespaces(): string[];
    set exemptedNamespaces(value: string[]);
    resetExemptedNamespaces(): void;
    get exemptedNamespacesInput(): string[] | undefined;
}
export declare class GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles[] | 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): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesOutputReference;
}
export interface GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary {
    /**
    * Configures the manner in which the template library is installed on the cluster. Possible values: INSTALLATION_UNSPECIFIED, NOT_INSTALLED, ALL
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#installation GkeHubFeatureMembership#installation}
    */
    readonly installation?: string;
}
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryToTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary): any;
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryToHclTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary): any;
export declare class GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryOutputReference 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(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary | undefined;
    set internalValue(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary | undefined);
    private _installation?;
    get installation(): string;
    set installation(value: string);
    resetInstallation(): void;
    get installationInput(): string | undefined;
}
export interface GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent {
    /**
    * bundles block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#bundles GkeHubFeatureMembership#bundles}
    */
    readonly bundles?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles[] | cdktf.IResolvable;
    /**
    * template_library block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#template_library GkeHubFeatureMembership#template_library}
    */
    readonly templateLibrary?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary;
}
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentToTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent): any;
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentToHclTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent): any;
export declare class GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentOutputReference 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(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent | undefined;
    set internalValue(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent | undefined);
    private _bundles;
    get bundles(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesList;
    putBundles(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles[] | cdktf.IResolvable): void;
    resetBundles(): void;
    get bundlesInput(): cdktf.IResolvable | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles[] | undefined;
    private _templateLibrary;
    get templateLibrary(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryOutputReference;
    putTemplateLibrary(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary): void;
    resetTemplateLibrary(): void;
    get templateLibraryInput(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary | undefined;
}
export interface GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfig {
    /**
    * Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#audit_interval_seconds GkeHubFeatureMembership#audit_interval_seconds}
    */
    readonly auditIntervalSeconds?: number;
    /**
    * The maximum number of audit violations to be stored in a constraint. If not set, the internal default of 20 will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#constraint_violation_limit GkeHubFeatureMembership#constraint_violation_limit}
    */
    readonly constraintViolationLimit?: number;
    /**
    * The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#exemptable_namespaces GkeHubFeatureMembership#exemptable_namespaces}
    */
    readonly exemptableNamespaces?: string[];
    /**
    * Configures the mode of the Policy Controller installation. Possible values: INSTALL_SPEC_UNSPECIFIED, INSTALL_SPEC_NOT_INSTALLED, INSTALL_SPEC_ENABLED, INSTALL_SPEC_SUSPENDED, INSTALL_SPEC_DETACHED
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#install_spec GkeHubFeatureMembership#install_spec}
    */
    readonly installSpec?: string;
    /**
    * Logs all denies and dry run failures.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#log_denies_enabled GkeHubFeatureMembership#log_denies_enabled}
    */
    readonly logDeniesEnabled?: boolean | cdktf.IResolvable;
    /**
    * Enables the ability to mutate resources using Policy Controller.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#mutation_enabled GkeHubFeatureMembership#mutation_enabled}
    */
    readonly mutationEnabled?: boolean | cdktf.IResolvable;
    /**
    * Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#referential_rules_enabled GkeHubFeatureMembership#referential_rules_enabled}
    */
    readonly referentialRulesEnabled?: boolean | cdktf.IResolvable;
    /**
    * deployment_configs block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#deployment_configs GkeHubFeatureMembership#deployment_configs}
    */
    readonly deploymentConfigs?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs[] | cdktf.IResolvable;
    /**
    * monitoring block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#monitoring GkeHubFeatureMembership#monitoring}
    */
    readonly monitoring?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring;
    /**
    * policy_content block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#policy_content GkeHubFeatureMembership#policy_content}
    */
    readonly policyContent?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent;
}
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigToTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfig): any;
export declare function gkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigToHclTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigOutputReference | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfig): any;
export declare class GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigOutputReference 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(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfig | undefined;
    set internalValue(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfig | undefined);
    private _auditIntervalSeconds?;
    get auditIntervalSeconds(): number;
    set auditIntervalSeconds(value: number);
    resetAuditIntervalSeconds(): void;
    get auditIntervalSecondsInput(): number | undefined;
    private _constraintViolationLimit?;
    get constraintViolationLimit(): number;
    set constraintViolationLimit(value: number);
    resetConstraintViolationLimit(): void;
    get constraintViolationLimitInput(): number | undefined;
    private _exemptableNamespaces?;
    get exemptableNamespaces(): string[];
    set exemptableNamespaces(value: string[]);
    resetExemptableNamespaces(): void;
    get exemptableNamespacesInput(): string[] | undefined;
    private _installSpec?;
    get installSpec(): string;
    set installSpec(value: string);
    resetInstallSpec(): void;
    get installSpecInput(): string | undefined;
    private _logDeniesEnabled?;
    get logDeniesEnabled(): boolean | cdktf.IResolvable;
    set logDeniesEnabled(value: boolean | cdktf.IResolvable);
    resetLogDeniesEnabled(): void;
    get logDeniesEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _mutationEnabled?;
    get mutationEnabled(): boolean | cdktf.IResolvable;
    set mutationEnabled(value: boolean | cdktf.IResolvable);
    resetMutationEnabled(): void;
    get mutationEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _referentialRulesEnabled?;
    get referentialRulesEnabled(): boolean | cdktf.IResolvable;
    set referentialRulesEnabled(value: boolean | cdktf.IResolvable);
    resetReferentialRulesEnabled(): void;
    get referentialRulesEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _deploymentConfigs;
    get deploymentConfigs(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsList;
    putDeploymentConfigs(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs[] | cdktf.IResolvable): void;
    resetDeploymentConfigs(): void;
    get deploymentConfigsInput(): cdktf.IResolvable | GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs[] | undefined;
    private _monitoring;
    get monitoring(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringOutputReference;
    putMonitoring(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring): void;
    resetMonitoring(): void;
    get monitoringInput(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring | undefined;
    private _policyContent;
    get policyContent(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentOutputReference;
    putPolicyContent(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent): void;
    resetPolicyContent(): void;
    get policyContentInput(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent | undefined;
}
export interface GkeHubFeatureMembershipPolicycontroller {
    /**
    * Optional. Version of Policy Controller to install. Defaults to the latest version.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#version GkeHubFeatureMembership#version}
    */
    readonly version?: string;
    /**
    * policy_controller_hub_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#policy_controller_hub_config GkeHubFeatureMembership#policy_controller_hub_config}
    */
    readonly policyControllerHubConfig: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfig;
}
export declare function gkeHubFeatureMembershipPolicycontrollerToTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerOutputReference | GkeHubFeatureMembershipPolicycontroller): any;
export declare function gkeHubFeatureMembershipPolicycontrollerToHclTerraform(struct?: GkeHubFeatureMembershipPolicycontrollerOutputReference | GkeHubFeatureMembershipPolicycontroller): any;
export declare class GkeHubFeatureMembershipPolicycontrollerOutputReference 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(): GkeHubFeatureMembershipPolicycontroller | undefined;
    set internalValue(value: GkeHubFeatureMembershipPolicycontroller | undefined);
    private _version?;
    get version(): string;
    set version(value: string);
    resetVersion(): void;
    get versionInput(): string | undefined;
    private _policyControllerHubConfig;
    get policyControllerHubConfig(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfigOutputReference;
    putPolicyControllerHubConfig(value: GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfig): void;
    get policyControllerHubConfigInput(): GkeHubFeatureMembershipPolicycontrollerPolicyControllerHubConfig | undefined;
}
export interface GkeHubFeatureMembershipTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#create GkeHubFeatureMembership#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#delete GkeHubFeatureMembership#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#update GkeHubFeatureMembership#update}
    */
    readonly update?: string;
}
export declare function gkeHubFeatureMembershipTimeoutsToTerraform(struct?: GkeHubFeatureMembershipTimeouts | cdktf.IResolvable): any;
export declare function gkeHubFeatureMembershipTimeoutsToHclTerraform(struct?: GkeHubFeatureMembershipTimeouts | cdktf.IResolvable): any;
export declare class GkeHubFeatureMembershipTimeoutsOutputReference 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(): GkeHubFeatureMembershipTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: GkeHubFeatureMembershipTimeouts | 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.36.0/docs/resources/gke_hub_feature_membership google_gke_hub_feature_membership}
*/
export declare class GkeHubFeatureMembership extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_gke_hub_feature_membership";
    /**
    * Generates CDKTF code for importing a GkeHubFeatureMembership 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 GkeHubFeatureMembership to import
    * @param importFromId The id of the existing GkeHubFeatureMembership that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/gke_hub_feature_membership#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the GkeHubFeatureMembership 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.36.0/docs/resources/gke_hub_feature_membership google_gke_hub_feature_membership} 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 GkeHubFeatureMembershipConfig
    */
    constructor(scope: Construct, id: string, config: GkeHubFeatureMembershipConfig);
    private _feature?;
    get feature(): string;
    set feature(value: string);
    get featureInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    private _membership?;
    get membership(): string;
    set membership(value: string);
    get membershipInput(): string | undefined;
    private _membershipLocation?;
    get membershipLocation(): string;
    set membershipLocation(value: string);
    resetMembershipLocation(): void;
    get membershipLocationInput(): string | undefined;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _configmanagement;
    get configmanagement(): GkeHubFeatureMembershipConfigmanagementOutputReference;
    putConfigmanagement(value: GkeHubFeatureMembershipConfigmanagement): void;
    resetConfigmanagement(): void;
    get configmanagementInput(): GkeHubFeatureMembershipConfigmanagement | undefined;
    private _mesh;
    get mesh(): GkeHubFeatureMembershipMeshOutputReference;
    putMesh(value: GkeHubFeatureMembershipMesh): void;
    resetMesh(): void;
    get meshInput(): GkeHubFeatureMembershipMesh | undefined;
    private _policycontroller;
    get policycontroller(): GkeHubFeatureMembershipPolicycontrollerOutputReference;
    putPolicycontroller(value: GkeHubFeatureMembershipPolicycontroller): void;
    resetPolicycontroller(): void;
    get policycontrollerInput(): GkeHubFeatureMembershipPolicycontroller | undefined;
    private _timeouts;
    get timeouts(): GkeHubFeatureMembershipTimeoutsOutputReference;
    putTimeouts(value: GkeHubFeatureMembershipTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | GkeHubFeatureMembershipTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
