/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface GkeHubFeatureConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#id GkeHubFeature#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;
    /**
    * GCP labels for this Feature.
    *
    * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
    * Please refer to the field 'effective_labels' for all of the labels present on the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#labels GkeHubFeature#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The location for the resource
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#location GkeHubFeature#location}
    */
    readonly location: string;
    /**
    * The full, unique name of this Feature resource
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#name GkeHubFeature#name}
    */
    readonly name?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#project GkeHubFeature#project}
    */
    readonly project?: string;
    /**
    * fleet_default_member_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#fleet_default_member_config GkeHubFeature#fleet_default_member_config}
    */
    readonly fleetDefaultMemberConfig?: GkeHubFeatureFleetDefaultMemberConfig;
    /**
    * spec block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#spec GkeHubFeature#spec}
    */
    readonly spec?: GkeHubFeatureSpec;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#timeouts GkeHubFeature#timeouts}
    */
    readonly timeouts?: GkeHubFeatureTimeouts;
}
export interface GkeHubFeatureResourceState {
}
export declare function gkeHubFeatureResourceStateToTerraform(struct?: GkeHubFeatureResourceState): any;
export declare function gkeHubFeatureResourceStateToHclTerraform(struct?: GkeHubFeatureResourceState): any;
export declare class GkeHubFeatureResourceStateOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @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(): GkeHubFeatureResourceState | undefined;
    set internalValue(value: GkeHubFeatureResourceState | undefined);
    get hasResources(): cdktf.IResolvable;
    get state(): string;
}
export declare class GkeHubFeatureResourceStateList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @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): GkeHubFeatureResourceStateOutputReference;
}
export interface GkeHubFeatureStateState {
}
export declare function gkeHubFeatureStateStateToTerraform(struct?: GkeHubFeatureStateState): any;
export declare function gkeHubFeatureStateStateToHclTerraform(struct?: GkeHubFeatureStateState): any;
export declare class GkeHubFeatureStateStateOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @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(): GkeHubFeatureStateState | undefined;
    set internalValue(value: GkeHubFeatureStateState | undefined);
    get code(): string;
    get description(): string;
    get updateTime(): string;
}
export declare class GkeHubFeatureStateStateList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @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): GkeHubFeatureStateStateOutputReference;
}
export interface GkeHubFeatureState {
}
export declare function gkeHubFeatureStateToTerraform(struct?: GkeHubFeatureState): any;
export declare function gkeHubFeatureStateToHclTerraform(struct?: GkeHubFeatureState): any;
export declare class GkeHubFeatureStateOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @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(): GkeHubFeatureState | undefined;
    set internalValue(value: GkeHubFeatureState | undefined);
    private _state;
    get state(): GkeHubFeatureStateStateList;
}
export declare class GkeHubFeatureStateList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @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): GkeHubFeatureStateOutputReference;
}
export interface GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit {
    /**
    * The Google Cloud Service Account Email used for auth when secretType is gcpServiceAccount
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#gcp_service_account_email GkeHubFeature#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.1/docs/resources/gke_hub_feature#https_proxy GkeHubFeature#https_proxy}
    */
    readonly httpsProxy?: string;
    /**
    * The path within the Git repository that represents the top level of the repo to sync
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#policy_dir GkeHubFeature#policy_dir}
    */
    readonly policyDir?: string;
    /**
    * Type of secret configured for access to the Git repo
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#secret_type GkeHubFeature#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.1/docs/resources/gke_hub_feature#sync_branch GkeHubFeature#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.1/docs/resources/gke_hub_feature#sync_repo GkeHubFeature#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.1/docs/resources/gke_hub_feature#sync_rev GkeHubFeature#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.1/docs/resources/gke_hub_feature#sync_wait_secs GkeHubFeature#sync_wait_secs}
    */
    readonly syncWaitSecs?: string;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitOutputReference | GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitOutputReference | GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit | 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);
    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 GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOci {
    /**
    * The Google Cloud Service Account Email used for auth when secretType is gcpServiceAccount
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#gcp_service_account_email GkeHubFeature#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.1/docs/resources/gke_hub_feature#policy_dir GkeHubFeature#policy_dir}
    */
    readonly policyDir?: string;
    /**
    * Type of secret configured for access to the Git repo
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#secret_type GkeHubFeature#secret_type}
    */
    readonly secretType: string;
    /**
    * The OCI image repository URL for the package to sync from
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#sync_repo GkeHubFeature#sync_repo}
    */
    readonly syncRepo?: string;
    /**
    * Period in seconds between consecutive syncs. Default: 15
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#sync_wait_secs GkeHubFeature#sync_wait_secs}
    */
    readonly syncWaitSecs?: string;
    /**
    * Version of Config Sync installed
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#version GkeHubFeature#version}
    */
    readonly version?: string;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciOutputReference | GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOci): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciOutputReference | GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOci): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOci | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOci | 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);
    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;
    private _version?;
    get version(): string;
    set version(value: string);
    resetVersion(): void;
    get versionInput(): string | undefined;
}
export interface GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSync {
    /**
    * 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.1/docs/resources/gke_hub_feature#enabled GkeHubFeature#enabled}
    */
    readonly enabled?: boolean | cdktf.IResolvable;
    /**
    * The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount 'default' in the namespace 'config-management-monitoring' should be bound to the GSA.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#metrics_gcp_service_account_email GkeHubFeature#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.1/docs/resources/gke_hub_feature#prevent_drift GkeHubFeature#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.1/docs/resources/gke_hub_feature#source_format GkeHubFeature#source_format}
    */
    readonly sourceFormat?: string;
    /**
    * git block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#git GkeHubFeature#git}
    */
    readonly git?: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit;
    /**
    * oci block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#oci GkeHubFeature#oci}
    */
    readonly oci?: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOci;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOutputReference | GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSync): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOutputReference | GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSync): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSync | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSync | 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 _git;
    get git(): GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitOutputReference;
    putGit(value: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit): void;
    resetGit(): void;
    get gitInput(): GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit | undefined;
    private _oci;
    get oci(): GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciOutputReference;
    putOci(value: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOci): void;
    resetOci(): void;
    get ociInput(): GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOci | undefined;
}
export interface GkeHubFeatureFleetDefaultMemberConfigConfigmanagement {
    /**
    * 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. Possible values: ["MANAGEMENT_UNSPECIFIED", "MANAGEMENT_AUTOMATIC", "MANAGEMENT_MANUAL"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#management GkeHubFeature#management}
    */
    readonly management?: string;
    /**
    * Version of Config Sync installed
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#version GkeHubFeature#version}
    */
    readonly version?: string;
    /**
    * config_sync block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#config_sync GkeHubFeature#config_sync}
    */
    readonly configSync?: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSync;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigConfigmanagementToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementOutputReference | GkeHubFeatureFleetDefaultMemberConfigConfigmanagement): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigConfigmanagementToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementOutputReference | GkeHubFeatureFleetDefaultMemberConfigConfigmanagement): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigConfigmanagementOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigConfigmanagement | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigConfigmanagement | 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 _configSync;
    get configSync(): GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOutputReference;
    putConfigSync(value: GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSync): void;
    resetConfigSync(): void;
    get configSyncInput(): GkeHubFeatureFleetDefaultMemberConfigConfigmanagementConfigSync | undefined;
}
export interface GkeHubFeatureFleetDefaultMemberConfigMesh {
    /**
    * 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.1/docs/resources/gke_hub_feature#management GkeHubFeature#management}
    */
    readonly management: string;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigMeshToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigMeshOutputReference | GkeHubFeatureFleetDefaultMemberConfigMesh): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigMeshToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigMeshOutputReference | GkeHubFeatureFleetDefaultMemberConfigMesh): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigMeshOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigMesh | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigMesh | undefined);
    private _management?;
    get management(): string;
    set management(value: string);
    get managementInput(): string | undefined;
}
export interface GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits {
    /**
    * CPU requirement expressed in Kubernetes resource units.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#cpu GkeHubFeature#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.1/docs/resources/gke_hub_feature#memory GkeHubFeature#memory}
    */
    readonly memory?: string;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimitsToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimitsOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimitsToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimitsOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimitsOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits | 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 GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests {
    /**
    * CPU requirement expressed in Kubernetes resource units.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#cpu GkeHubFeature#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.1/docs/resources/gke_hub_feature#memory GkeHubFeature#memory}
    */
    readonly memory?: string;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequestsToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequestsOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequestsToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequestsOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequestsOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests | 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 GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources {
    /**
    * limits block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#limits GkeHubFeature#limits}
    */
    readonly limits?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits;
    /**
    * requests block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#requests GkeHubFeature#requests}
    */
    readonly requests?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources | undefined);
    private _limits;
    get limits(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimitsOutputReference;
    putLimits(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits): void;
    resetLimits(): void;
    get limitsInput(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits | undefined;
    private _requests;
    get requests(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequestsOutputReference;
    putRequests(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests): void;
    resetRequests(): void;
    get requestsInput(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests | undefined;
}
export interface GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodToleration {
    /**
    * Matches a taint effect.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#effect GkeHubFeature#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.1/docs/resources/gke_hub_feature#key GkeHubFeature#key}
    */
    readonly key?: string;
    /**
    * Matches a taint operator.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#operator GkeHubFeature#operator}
    */
    readonly operator?: string;
    /**
    * Matches a taint value.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#value GkeHubFeature#value}
    */
    readonly value?: string;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerationToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodToleration | cdktf.IResolvable): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerationToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodToleration | cdktf.IResolvable): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerationOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodToleration | cdktf.IResolvable | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodToleration | 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 GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerationList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodToleration[] | 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): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerationOutputReference;
}
export interface GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigs {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#component GkeHubFeature#component}
    */
    readonly component: 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.1/docs/resources/gke_hub_feature#pod_affinity GkeHubFeature#pod_affinity}
    */
    readonly podAffinity?: string;
    /**
    * Pod replica count.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#replica_count GkeHubFeature#replica_count}
    */
    readonly replicaCount?: number;
    /**
    * container_resources block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#container_resources GkeHubFeature#container_resources}
    */
    readonly containerResources?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources;
    /**
    * pod_toleration block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#pod_toleration GkeHubFeature#pod_toleration}
    */
    readonly podToleration?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodToleration[] | cdktf.IResolvable;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigs | cdktf.IResolvable): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigs | cdktf.IResolvable): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigs | cdktf.IResolvable | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigs | cdktf.IResolvable | undefined);
    private _component?;
    get component(): string;
    set component(value: string);
    get componentInput(): 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(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesOutputReference;
    putContainerResources(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources): void;
    resetContainerResources(): void;
    get containerResourcesInput(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources | undefined;
    private _podToleration;
    get podToleration(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerationList;
    putPodToleration(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodToleration[] | cdktf.IResolvable): void;
    resetPodToleration(): void;
    get podTolerationInput(): cdktf.IResolvable | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodToleration[] | undefined;
}
export declare class GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigs[] | 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): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsOutputReference;
}
export interface GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoring {
    /**
    * Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export. Possible values: ["MONITORING_BACKEND_UNSPECIFIED", "PROMETHEUS", "CLOUD_MONITORING"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#backends GkeHubFeature#backends}
    */
    readonly backends?: string[];
}
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoringToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoringOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoring): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoringToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoringOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoring): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoringOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoring | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoring | undefined);
    private _backends?;
    get backends(): string[];
    set backends(value: string[]);
    resetBackends(): void;
    get backendsInput(): string[] | undefined;
}
export interface GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundles {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#bundle GkeHubFeature#bundle}
    */
    readonly bundle: 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.1/docs/resources/gke_hub_feature#exempted_namespaces GkeHubFeature#exempted_namespaces}
    */
    readonly exemptedNamespaces?: string[];
}
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundles | cdktf.IResolvable): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundles | cdktf.IResolvable): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundles | cdktf.IResolvable | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundles | cdktf.IResolvable | undefined);
    private _bundle?;
    get bundle(): string;
    set bundle(value: string);
    get bundleInput(): string | undefined;
    private _exemptedNamespaces?;
    get exemptedNamespaces(): string[];
    set exemptedNamespaces(value: string[]);
    resetExemptedNamespaces(): void;
    get exemptedNamespacesInput(): string[] | undefined;
}
export declare class GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundles[] | 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): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesOutputReference;
}
export interface GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary {
    /**
    * 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.1/docs/resources/gke_hub_feature#installation GkeHubFeature#installation}
    */
    readonly installation?: string;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary | undefined);
    private _installation?;
    get installation(): string;
    set installation(value: string);
    resetInstallation(): void;
    get installationInput(): string | undefined;
}
export interface GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContent {
    /**
    * bundles block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#bundles GkeHubFeature#bundles}
    */
    readonly bundles?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundles[] | cdktf.IResolvable;
    /**
    * template_library block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#template_library GkeHubFeature#template_library}
    */
    readonly templateLibrary?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContent): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContent): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContent | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContent | undefined);
    private _bundles;
    get bundles(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesList;
    putBundles(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundles[] | cdktf.IResolvable): void;
    resetBundles(): void;
    get bundlesInput(): cdktf.IResolvable | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentBundles[] | undefined;
    private _templateLibrary;
    get templateLibrary(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryOutputReference;
    putTemplateLibrary(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary): void;
    resetTemplateLibrary(): void;
    get templateLibraryInput(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary | undefined;
}
export interface GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfig {
    /**
    * 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.1/docs/resources/gke_hub_feature#audit_interval_seconds GkeHubFeature#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.1/docs/resources/gke_hub_feature#constraint_violation_limit GkeHubFeature#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.1/docs/resources/gke_hub_feature#exemptable_namespaces GkeHubFeature#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.1/docs/resources/gke_hub_feature#install_spec GkeHubFeature#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.1/docs/resources/gke_hub_feature#log_denies_enabled GkeHubFeature#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.1/docs/resources/gke_hub_feature#mutation_enabled GkeHubFeature#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.1/docs/resources/gke_hub_feature#referential_rules_enabled GkeHubFeature#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.1/docs/resources/gke_hub_feature#deployment_configs GkeHubFeature#deployment_configs}
    */
    readonly deploymentConfigs?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigs[] | cdktf.IResolvable;
    /**
    * monitoring block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#monitoring GkeHubFeature#monitoring}
    */
    readonly monitoring?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoring;
    /**
    * policy_content block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#policy_content GkeHubFeature#policy_content}
    */
    readonly policyContent?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContent;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfig): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfig): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfig | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfig | 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);
    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(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigsList;
    putDeploymentConfigs(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigs[] | cdktf.IResolvable): void;
    resetDeploymentConfigs(): void;
    get deploymentConfigsInput(): cdktf.IResolvable | GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigDeploymentConfigs[] | undefined;
    private _monitoring;
    get monitoring(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoringOutputReference;
    putMonitoring(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoring): void;
    resetMonitoring(): void;
    get monitoringInput(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigMonitoring | undefined;
    private _policyContent;
    get policyContent(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContentOutputReference;
    putPolicyContent(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContent): void;
    resetPolicyContent(): void;
    get policyContentInput(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigPolicyContent | undefined;
}
export interface GkeHubFeatureFleetDefaultMemberConfigPolicycontroller {
    /**
    * Configures the version of Policy Controller
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#version GkeHubFeature#version}
    */
    readonly version?: string;
    /**
    * policy_controller_hub_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#policy_controller_hub_config GkeHubFeature#policy_controller_hub_config}
    */
    readonly policyControllerHubConfig: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfig;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontroller): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigPolicycontrollerToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerOutputReference | GkeHubFeatureFleetDefaultMemberConfigPolicycontroller): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfigPolicycontroller | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontroller | undefined);
    private _version?;
    get version(): string;
    set version(value: string);
    resetVersion(): void;
    get versionInput(): string | undefined;
    private _policyControllerHubConfig;
    get policyControllerHubConfig(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfigOutputReference;
    putPolicyControllerHubConfig(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfig): void;
    get policyControllerHubConfigInput(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerPolicyControllerHubConfig | undefined;
}
export interface GkeHubFeatureFleetDefaultMemberConfig {
    /**
    * configmanagement block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#configmanagement GkeHubFeature#configmanagement}
    */
    readonly configmanagement?: GkeHubFeatureFleetDefaultMemberConfigConfigmanagement;
    /**
    * mesh block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#mesh GkeHubFeature#mesh}
    */
    readonly mesh?: GkeHubFeatureFleetDefaultMemberConfigMesh;
    /**
    * policycontroller block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#policycontroller GkeHubFeature#policycontroller}
    */
    readonly policycontroller?: GkeHubFeatureFleetDefaultMemberConfigPolicycontroller;
}
export declare function gkeHubFeatureFleetDefaultMemberConfigToTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigOutputReference | GkeHubFeatureFleetDefaultMemberConfig): any;
export declare function gkeHubFeatureFleetDefaultMemberConfigToHclTerraform(struct?: GkeHubFeatureFleetDefaultMemberConfigOutputReference | GkeHubFeatureFleetDefaultMemberConfig): any;
export declare class GkeHubFeatureFleetDefaultMemberConfigOutputReference 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(): GkeHubFeatureFleetDefaultMemberConfig | undefined;
    set internalValue(value: GkeHubFeatureFleetDefaultMemberConfig | undefined);
    private _configmanagement;
    get configmanagement(): GkeHubFeatureFleetDefaultMemberConfigConfigmanagementOutputReference;
    putConfigmanagement(value: GkeHubFeatureFleetDefaultMemberConfigConfigmanagement): void;
    resetConfigmanagement(): void;
    get configmanagementInput(): GkeHubFeatureFleetDefaultMemberConfigConfigmanagement | undefined;
    private _mesh;
    get mesh(): GkeHubFeatureFleetDefaultMemberConfigMeshOutputReference;
    putMesh(value: GkeHubFeatureFleetDefaultMemberConfigMesh): void;
    resetMesh(): void;
    get meshInput(): GkeHubFeatureFleetDefaultMemberConfigMesh | undefined;
    private _policycontroller;
    get policycontroller(): GkeHubFeatureFleetDefaultMemberConfigPolicycontrollerOutputReference;
    putPolicycontroller(value: GkeHubFeatureFleetDefaultMemberConfigPolicycontroller): void;
    resetPolicycontroller(): void;
    get policycontrollerInput(): GkeHubFeatureFleetDefaultMemberConfigPolicycontroller | undefined;
}
export interface GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditions {
    /**
    * Amount of time to "soak" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#soaking GkeHubFeature#soaking}
    */
    readonly soaking: string;
}
export declare function gkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditionsToTerraform(struct?: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditionsOutputReference | GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditions): any;
export declare function gkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditionsToHclTerraform(struct?: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditionsOutputReference | GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditions): any;
export declare class GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditionsOutputReference 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(): GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditions | undefined;
    set internalValue(value: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditions | undefined);
    private _soaking?;
    get soaking(): string;
    set soaking(value: string);
    get soakingInput(): string | undefined;
}
export interface GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgrade {
    /**
    * Name of the upgrade, e.g., "k8s_control_plane". It should be a valid upgrade name. It must not exceet 99 characters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#name GkeHubFeature#name}
    */
    readonly name: string;
    /**
    * Version of the upgrade, e.g., "1.22.1-gke.100". It should be a valid version. It must not exceet 99 characters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#version GkeHubFeature#version}
    */
    readonly version: string;
}
export declare function gkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeToTerraform(struct?: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeOutputReference | GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgrade): any;
export declare function gkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeToHclTerraform(struct?: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeOutputReference | GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgrade): any;
export declare class GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeOutputReference 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(): GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgrade | undefined;
    set internalValue(value: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgrade | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _version?;
    get version(): string;
    set version(value: string);
    get versionInput(): string | undefined;
}
export interface GkeHubFeatureSpecClusterupgradeGkeUpgradeOverrides {
    /**
    * post_conditions block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#post_conditions GkeHubFeature#post_conditions}
    */
    readonly postConditions: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditions;
    /**
    * upgrade block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#upgrade GkeHubFeature#upgrade}
    */
    readonly upgrade: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgrade;
}
export declare function gkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesToTerraform(struct?: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverrides | cdktf.IResolvable): any;
export declare function gkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesToHclTerraform(struct?: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverrides | cdktf.IResolvable): any;
export declare class GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesOutputReference 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(): GkeHubFeatureSpecClusterupgradeGkeUpgradeOverrides | cdktf.IResolvable | undefined;
    set internalValue(value: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverrides | cdktf.IResolvable | undefined);
    private _postConditions;
    get postConditions(): GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditionsOutputReference;
    putPostConditions(value: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditions): void;
    get postConditionsInput(): GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesPostConditions | undefined;
    private _upgrade;
    get upgrade(): GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgradeOutputReference;
    putUpgrade(value: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgrade): void;
    get upgradeInput(): GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesUpgrade | undefined;
}
export declare class GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverrides[] | 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): GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesOutputReference;
}
export interface GkeHubFeatureSpecClusterupgradePostConditions {
    /**
    * Amount of time to "soak" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#soaking GkeHubFeature#soaking}
    */
    readonly soaking: string;
}
export declare function gkeHubFeatureSpecClusterupgradePostConditionsToTerraform(struct?: GkeHubFeatureSpecClusterupgradePostConditionsOutputReference | GkeHubFeatureSpecClusterupgradePostConditions): any;
export declare function gkeHubFeatureSpecClusterupgradePostConditionsToHclTerraform(struct?: GkeHubFeatureSpecClusterupgradePostConditionsOutputReference | GkeHubFeatureSpecClusterupgradePostConditions): any;
export declare class GkeHubFeatureSpecClusterupgradePostConditionsOutputReference 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(): GkeHubFeatureSpecClusterupgradePostConditions | undefined;
    set internalValue(value: GkeHubFeatureSpecClusterupgradePostConditions | undefined);
    private _soaking?;
    get soaking(): string;
    set soaking(value: string);
    get soakingInput(): string | undefined;
}
export interface GkeHubFeatureSpecClusterupgrade {
    /**
    * Specified if other fleet should be considered as a source of upgrades. Currently, at most one upstream fleet is allowed. The fleet name should be either fleet project number or id.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#upstream_fleets GkeHubFeature#upstream_fleets}
    */
    readonly upstreamFleets: string[];
    /**
    * gke_upgrade_overrides block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#gke_upgrade_overrides GkeHubFeature#gke_upgrade_overrides}
    */
    readonly gkeUpgradeOverrides?: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverrides[] | cdktf.IResolvable;
    /**
    * post_conditions block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#post_conditions GkeHubFeature#post_conditions}
    */
    readonly postConditions?: GkeHubFeatureSpecClusterupgradePostConditions;
}
export declare function gkeHubFeatureSpecClusterupgradeToTerraform(struct?: GkeHubFeatureSpecClusterupgradeOutputReference | GkeHubFeatureSpecClusterupgrade): any;
export declare function gkeHubFeatureSpecClusterupgradeToHclTerraform(struct?: GkeHubFeatureSpecClusterupgradeOutputReference | GkeHubFeatureSpecClusterupgrade): any;
export declare class GkeHubFeatureSpecClusterupgradeOutputReference 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(): GkeHubFeatureSpecClusterupgrade | undefined;
    set internalValue(value: GkeHubFeatureSpecClusterupgrade | undefined);
    private _upstreamFleets?;
    get upstreamFleets(): string[];
    set upstreamFleets(value: string[]);
    get upstreamFleetsInput(): string[] | undefined;
    private _gkeUpgradeOverrides;
    get gkeUpgradeOverrides(): GkeHubFeatureSpecClusterupgradeGkeUpgradeOverridesList;
    putGkeUpgradeOverrides(value: GkeHubFeatureSpecClusterupgradeGkeUpgradeOverrides[] | cdktf.IResolvable): void;
    resetGkeUpgradeOverrides(): void;
    get gkeUpgradeOverridesInput(): cdktf.IResolvable | GkeHubFeatureSpecClusterupgradeGkeUpgradeOverrides[] | undefined;
    private _postConditions;
    get postConditions(): GkeHubFeatureSpecClusterupgradePostConditionsOutputReference;
    putPostConditions(value: GkeHubFeatureSpecClusterupgradePostConditions): void;
    resetPostConditions(): void;
    get postConditionsInput(): GkeHubFeatureSpecClusterupgradePostConditions | undefined;
}
export interface GkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfig {
    /**
    * Specified if fleet logging feature is enabled. Possible values: ["MODE_UNSPECIFIED", "COPY", "MOVE"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#mode GkeHubFeature#mode}
    */
    readonly mode?: string;
}
export declare function gkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfigToTerraform(struct?: GkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfigOutputReference | GkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfig): any;
export declare function gkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfigToHclTerraform(struct?: GkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfigOutputReference | GkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfig): any;
export declare class GkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfigOutputReference 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(): GkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfig | undefined;
    set internalValue(value: GkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfig | undefined);
    private _mode?;
    get mode(): string;
    set mode(value: string);
    resetMode(): void;
    get modeInput(): string | undefined;
}
export interface GkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig {
    /**
    * Specified if fleet logging feature is enabled. Possible values: ["MODE_UNSPECIFIED", "COPY", "MOVE"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#mode GkeHubFeature#mode}
    */
    readonly mode?: string;
}
export declare function gkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfigToTerraform(struct?: GkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfigOutputReference | GkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig): any;
export declare function gkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfigToHclTerraform(struct?: GkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfigOutputReference | GkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig): any;
export declare class GkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfigOutputReference 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(): GkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig | undefined;
    set internalValue(value: GkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig | undefined);
    private _mode?;
    get mode(): string;
    set mode(value: string);
    resetMode(): void;
    get modeInput(): string | undefined;
}
export interface GkeHubFeatureSpecFleetobservabilityLoggingConfig {
    /**
    * default_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#default_config GkeHubFeature#default_config}
    */
    readonly defaultConfig?: GkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfig;
    /**
    * fleet_scope_logs_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#fleet_scope_logs_config GkeHubFeature#fleet_scope_logs_config}
    */
    readonly fleetScopeLogsConfig?: GkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig;
}
export declare function gkeHubFeatureSpecFleetobservabilityLoggingConfigToTerraform(struct?: GkeHubFeatureSpecFleetobservabilityLoggingConfigOutputReference | GkeHubFeatureSpecFleetobservabilityLoggingConfig): any;
export declare function gkeHubFeatureSpecFleetobservabilityLoggingConfigToHclTerraform(struct?: GkeHubFeatureSpecFleetobservabilityLoggingConfigOutputReference | GkeHubFeatureSpecFleetobservabilityLoggingConfig): any;
export declare class GkeHubFeatureSpecFleetobservabilityLoggingConfigOutputReference 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(): GkeHubFeatureSpecFleetobservabilityLoggingConfig | undefined;
    set internalValue(value: GkeHubFeatureSpecFleetobservabilityLoggingConfig | undefined);
    private _defaultConfig;
    get defaultConfig(): GkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfigOutputReference;
    putDefaultConfig(value: GkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfig): void;
    resetDefaultConfig(): void;
    get defaultConfigInput(): GkeHubFeatureSpecFleetobservabilityLoggingConfigDefaultConfig | undefined;
    private _fleetScopeLogsConfig;
    get fleetScopeLogsConfig(): GkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfigOutputReference;
    putFleetScopeLogsConfig(value: GkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig): void;
    resetFleetScopeLogsConfig(): void;
    get fleetScopeLogsConfigInput(): GkeHubFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig | undefined;
}
export interface GkeHubFeatureSpecFleetobservability {
    /**
    * logging_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#logging_config GkeHubFeature#logging_config}
    */
    readonly loggingConfig?: GkeHubFeatureSpecFleetobservabilityLoggingConfig;
}
export declare function gkeHubFeatureSpecFleetobservabilityToTerraform(struct?: GkeHubFeatureSpecFleetobservabilityOutputReference | GkeHubFeatureSpecFleetobservability): any;
export declare function gkeHubFeatureSpecFleetobservabilityToHclTerraform(struct?: GkeHubFeatureSpecFleetobservabilityOutputReference | GkeHubFeatureSpecFleetobservability): any;
export declare class GkeHubFeatureSpecFleetobservabilityOutputReference 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(): GkeHubFeatureSpecFleetobservability | undefined;
    set internalValue(value: GkeHubFeatureSpecFleetobservability | undefined);
    private _loggingConfig;
    get loggingConfig(): GkeHubFeatureSpecFleetobservabilityLoggingConfigOutputReference;
    putLoggingConfig(value: GkeHubFeatureSpecFleetobservabilityLoggingConfig): void;
    resetLoggingConfig(): void;
    get loggingConfigInput(): GkeHubFeatureSpecFleetobservabilityLoggingConfig | undefined;
}
export interface GkeHubFeatureSpecMulticlusteringress {
    /**
    * Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: 'projects/foo-proj/locations/global/memberships/bar'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#config_membership GkeHubFeature#config_membership}
    */
    readonly configMembership: string;
}
export declare function gkeHubFeatureSpecMulticlusteringressToTerraform(struct?: GkeHubFeatureSpecMulticlusteringressOutputReference | GkeHubFeatureSpecMulticlusteringress): any;
export declare function gkeHubFeatureSpecMulticlusteringressToHclTerraform(struct?: GkeHubFeatureSpecMulticlusteringressOutputReference | GkeHubFeatureSpecMulticlusteringress): any;
export declare class GkeHubFeatureSpecMulticlusteringressOutputReference 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(): GkeHubFeatureSpecMulticlusteringress | undefined;
    set internalValue(value: GkeHubFeatureSpecMulticlusteringress | undefined);
    private _configMembership?;
    get configMembership(): string;
    set configMembership(value: string);
    get configMembershipInput(): string | undefined;
}
export interface GkeHubFeatureSpec {
    /**
    * clusterupgrade block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#clusterupgrade GkeHubFeature#clusterupgrade}
    */
    readonly clusterupgrade?: GkeHubFeatureSpecClusterupgrade;
    /**
    * fleetobservability block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#fleetobservability GkeHubFeature#fleetobservability}
    */
    readonly fleetobservability?: GkeHubFeatureSpecFleetobservability;
    /**
    * multiclusteringress block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#multiclusteringress GkeHubFeature#multiclusteringress}
    */
    readonly multiclusteringress?: GkeHubFeatureSpecMulticlusteringress;
}
export declare function gkeHubFeatureSpecToTerraform(struct?: GkeHubFeatureSpecOutputReference | GkeHubFeatureSpec): any;
export declare function gkeHubFeatureSpecToHclTerraform(struct?: GkeHubFeatureSpecOutputReference | GkeHubFeatureSpec): any;
export declare class GkeHubFeatureSpecOutputReference 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(): GkeHubFeatureSpec | undefined;
    set internalValue(value: GkeHubFeatureSpec | undefined);
    private _clusterupgrade;
    get clusterupgrade(): GkeHubFeatureSpecClusterupgradeOutputReference;
    putClusterupgrade(value: GkeHubFeatureSpecClusterupgrade): void;
    resetClusterupgrade(): void;
    get clusterupgradeInput(): GkeHubFeatureSpecClusterupgrade | undefined;
    private _fleetobservability;
    get fleetobservability(): GkeHubFeatureSpecFleetobservabilityOutputReference;
    putFleetobservability(value: GkeHubFeatureSpecFleetobservability): void;
    resetFleetobservability(): void;
    get fleetobservabilityInput(): GkeHubFeatureSpecFleetobservability | undefined;
    private _multiclusteringress;
    get multiclusteringress(): GkeHubFeatureSpecMulticlusteringressOutputReference;
    putMulticlusteringress(value: GkeHubFeatureSpecMulticlusteringress): void;
    resetMulticlusteringress(): void;
    get multiclusteringressInput(): GkeHubFeatureSpecMulticlusteringress | undefined;
}
export interface GkeHubFeatureTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#create GkeHubFeature#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#delete GkeHubFeature#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#update GkeHubFeature#update}
    */
    readonly update?: string;
}
export declare function gkeHubFeatureTimeoutsToTerraform(struct?: GkeHubFeatureTimeouts | cdktf.IResolvable): any;
export declare function gkeHubFeatureTimeoutsToHclTerraform(struct?: GkeHubFeatureTimeouts | cdktf.IResolvable): any;
export declare class GkeHubFeatureTimeoutsOutputReference 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(): GkeHubFeatureTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: GkeHubFeatureTimeouts | 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.1/docs/resources/gke_hub_feature google_gke_hub_feature}
*/
export declare class GkeHubFeature extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_gke_hub_feature";
    /**
    * Generates CDKTF code for importing a GkeHubFeature 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 GkeHubFeature to import
    * @param importFromId The id of the existing GkeHubFeature that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/gke_hub_feature#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the GkeHubFeature 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.1/docs/resources/gke_hub_feature google_gke_hub_feature} 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 GkeHubFeatureConfig
    */
    constructor(scope: Construct, id: string, config: GkeHubFeatureConfig);
    get createTime(): string;
    get deleteTime(): string;
    private _effectiveLabels;
    get effectiveLabels(): cdktf.StringMap;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _resourceState;
    get resourceState(): GkeHubFeatureResourceStateList;
    private _state;
    get state(): GkeHubFeatureStateList;
    private _terraformLabels;
    get terraformLabels(): cdktf.StringMap;
    get updateTime(): string;
    private _fleetDefaultMemberConfig;
    get fleetDefaultMemberConfig(): GkeHubFeatureFleetDefaultMemberConfigOutputReference;
    putFleetDefaultMemberConfig(value: GkeHubFeatureFleetDefaultMemberConfig): void;
    resetFleetDefaultMemberConfig(): void;
    get fleetDefaultMemberConfigInput(): GkeHubFeatureFleetDefaultMemberConfig | undefined;
    private _spec;
    get spec(): GkeHubFeatureSpecOutputReference;
    putSpec(value: GkeHubFeatureSpec): void;
    resetSpec(): void;
    get specInput(): GkeHubFeatureSpec | undefined;
    private _timeouts;
    get timeouts(): GkeHubFeatureTimeoutsOutputReference;
    putTimeouts(value: GkeHubFeatureTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | GkeHubFeatureTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
