/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import * as cdktf from 'cdktf';
export interface ContainerClusterAddonsConfigCloudrunConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disabled ContainerCluster#disabled}
    */
    readonly disabled: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#load_balancer_type ContainerCluster#load_balancer_type}
    */
    readonly loadBalancerType?: string;
}
export declare function containerClusterAddonsConfigCloudrunConfigToTerraform(struct?: ContainerClusterAddonsConfigCloudrunConfigOutputReference | ContainerClusterAddonsConfigCloudrunConfig): any;
export declare function containerClusterAddonsConfigCloudrunConfigToHclTerraform(struct?: ContainerClusterAddonsConfigCloudrunConfigOutputReference | ContainerClusterAddonsConfigCloudrunConfig): any;
export declare class ContainerClusterAddonsConfigCloudrunConfigOutputReference 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(): ContainerClusterAddonsConfigCloudrunConfig | undefined;
    set internalValue(value: ContainerClusterAddonsConfigCloudrunConfig | undefined);
    private _disabled?;
    get disabled(): boolean | cdktf.IResolvable;
    set disabled(value: boolean | cdktf.IResolvable);
    get disabledInput(): boolean | cdktf.IResolvable | undefined;
    private _loadBalancerType?;
    get loadBalancerType(): string;
    set loadBalancerType(value: string);
    resetLoadBalancerType(): void;
    get loadBalancerTypeInput(): string | undefined;
}
export interface ContainerClusterAddonsConfigConfigConnectorConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterAddonsConfigConfigConnectorConfigToTerraform(struct?: ContainerClusterAddonsConfigConfigConnectorConfigOutputReference | ContainerClusterAddonsConfigConfigConnectorConfig): any;
export declare function containerClusterAddonsConfigConfigConnectorConfigToHclTerraform(struct?: ContainerClusterAddonsConfigConfigConnectorConfigOutputReference | ContainerClusterAddonsConfigConfigConnectorConfig): any;
export declare class ContainerClusterAddonsConfigConfigConnectorConfigOutputReference 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(): ContainerClusterAddonsConfigConfigConnectorConfig | undefined;
    set internalValue(value: ContainerClusterAddonsConfigConfigConnectorConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterAddonsConfigDnsCacheConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterAddonsConfigDnsCacheConfigToTerraform(struct?: ContainerClusterAddonsConfigDnsCacheConfigOutputReference | ContainerClusterAddonsConfigDnsCacheConfig): any;
export declare function containerClusterAddonsConfigDnsCacheConfigToHclTerraform(struct?: ContainerClusterAddonsConfigDnsCacheConfigOutputReference | ContainerClusterAddonsConfigDnsCacheConfig): any;
export declare class ContainerClusterAddonsConfigDnsCacheConfigOutputReference 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(): ContainerClusterAddonsConfigDnsCacheConfig | undefined;
    set internalValue(value: ContainerClusterAddonsConfigDnsCacheConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterAddonsConfigGcePersistentDiskCsiDriverConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterAddonsConfigGcePersistentDiskCsiDriverConfigToTerraform(struct?: ContainerClusterAddonsConfigGcePersistentDiskCsiDriverConfigOutputReference | ContainerClusterAddonsConfigGcePersistentDiskCsiDriverConfig): any;
export declare function containerClusterAddonsConfigGcePersistentDiskCsiDriverConfigToHclTerraform(struct?: ContainerClusterAddonsConfigGcePersistentDiskCsiDriverConfigOutputReference | ContainerClusterAddonsConfigGcePersistentDiskCsiDriverConfig): any;
export declare class ContainerClusterAddonsConfigGcePersistentDiskCsiDriverConfigOutputReference 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(): ContainerClusterAddonsConfigGcePersistentDiskCsiDriverConfig | undefined;
    set internalValue(value: ContainerClusterAddonsConfigGcePersistentDiskCsiDriverConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterAddonsConfigGcpFilestoreCsiDriverConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterAddonsConfigGcpFilestoreCsiDriverConfigToTerraform(struct?: ContainerClusterAddonsConfigGcpFilestoreCsiDriverConfigOutputReference | ContainerClusterAddonsConfigGcpFilestoreCsiDriverConfig): any;
export declare function containerClusterAddonsConfigGcpFilestoreCsiDriverConfigToHclTerraform(struct?: ContainerClusterAddonsConfigGcpFilestoreCsiDriverConfigOutputReference | ContainerClusterAddonsConfigGcpFilestoreCsiDriverConfig): any;
export declare class ContainerClusterAddonsConfigGcpFilestoreCsiDriverConfigOutputReference 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(): ContainerClusterAddonsConfigGcpFilestoreCsiDriverConfig | undefined;
    set internalValue(value: ContainerClusterAddonsConfigGcpFilestoreCsiDriverConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterAddonsConfigGcsFuseCsiDriverConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterAddonsConfigGcsFuseCsiDriverConfigToTerraform(struct?: ContainerClusterAddonsConfigGcsFuseCsiDriverConfigOutputReference | ContainerClusterAddonsConfigGcsFuseCsiDriverConfig): any;
export declare function containerClusterAddonsConfigGcsFuseCsiDriverConfigToHclTerraform(struct?: ContainerClusterAddonsConfigGcsFuseCsiDriverConfigOutputReference | ContainerClusterAddonsConfigGcsFuseCsiDriverConfig): any;
export declare class ContainerClusterAddonsConfigGcsFuseCsiDriverConfigOutputReference 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(): ContainerClusterAddonsConfigGcsFuseCsiDriverConfig | undefined;
    set internalValue(value: ContainerClusterAddonsConfigGcsFuseCsiDriverConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterAddonsConfigGkeBackupAgentConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterAddonsConfigGkeBackupAgentConfigToTerraform(struct?: ContainerClusterAddonsConfigGkeBackupAgentConfigOutputReference | ContainerClusterAddonsConfigGkeBackupAgentConfig): any;
export declare function containerClusterAddonsConfigGkeBackupAgentConfigToHclTerraform(struct?: ContainerClusterAddonsConfigGkeBackupAgentConfigOutputReference | ContainerClusterAddonsConfigGkeBackupAgentConfig): any;
export declare class ContainerClusterAddonsConfigGkeBackupAgentConfigOutputReference 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(): ContainerClusterAddonsConfigGkeBackupAgentConfig | undefined;
    set internalValue(value: ContainerClusterAddonsConfigGkeBackupAgentConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterAddonsConfigHorizontalPodAutoscaling {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disabled ContainerCluster#disabled}
    */
    readonly disabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterAddonsConfigHorizontalPodAutoscalingToTerraform(struct?: ContainerClusterAddonsConfigHorizontalPodAutoscalingOutputReference | ContainerClusterAddonsConfigHorizontalPodAutoscaling): any;
export declare function containerClusterAddonsConfigHorizontalPodAutoscalingToHclTerraform(struct?: ContainerClusterAddonsConfigHorizontalPodAutoscalingOutputReference | ContainerClusterAddonsConfigHorizontalPodAutoscaling): any;
export declare class ContainerClusterAddonsConfigHorizontalPodAutoscalingOutputReference 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(): ContainerClusterAddonsConfigHorizontalPodAutoscaling | undefined;
    set internalValue(value: ContainerClusterAddonsConfigHorizontalPodAutoscaling | undefined);
    private _disabled?;
    get disabled(): boolean | cdktf.IResolvable;
    set disabled(value: boolean | cdktf.IResolvable);
    get disabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterAddonsConfigHttpLoadBalancing {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disabled ContainerCluster#disabled}
    */
    readonly disabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterAddonsConfigHttpLoadBalancingToTerraform(struct?: ContainerClusterAddonsConfigHttpLoadBalancingOutputReference | ContainerClusterAddonsConfigHttpLoadBalancing): any;
export declare function containerClusterAddonsConfigHttpLoadBalancingToHclTerraform(struct?: ContainerClusterAddonsConfigHttpLoadBalancingOutputReference | ContainerClusterAddonsConfigHttpLoadBalancing): any;
export declare class ContainerClusterAddonsConfigHttpLoadBalancingOutputReference 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(): ContainerClusterAddonsConfigHttpLoadBalancing | undefined;
    set internalValue(value: ContainerClusterAddonsConfigHttpLoadBalancing | undefined);
    private _disabled?;
    get disabled(): boolean | cdktf.IResolvable;
    set disabled(value: boolean | cdktf.IResolvable);
    get disabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterAddonsConfigNetworkPolicyConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disabled ContainerCluster#disabled}
    */
    readonly disabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterAddonsConfigNetworkPolicyConfigToTerraform(struct?: ContainerClusterAddonsConfigNetworkPolicyConfigOutputReference | ContainerClusterAddonsConfigNetworkPolicyConfig): any;
export declare function containerClusterAddonsConfigNetworkPolicyConfigToHclTerraform(struct?: ContainerClusterAddonsConfigNetworkPolicyConfigOutputReference | ContainerClusterAddonsConfigNetworkPolicyConfig): any;
export declare class ContainerClusterAddonsConfigNetworkPolicyConfigOutputReference 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(): ContainerClusterAddonsConfigNetworkPolicyConfig | undefined;
    set internalValue(value: ContainerClusterAddonsConfigNetworkPolicyConfig | undefined);
    private _disabled?;
    get disabled(): boolean | cdktf.IResolvable;
    set disabled(value: boolean | cdktf.IResolvable);
    get disabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterAddonsConfigParallelstoreCsiDriverConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterAddonsConfigParallelstoreCsiDriverConfigToTerraform(struct?: ContainerClusterAddonsConfigParallelstoreCsiDriverConfigOutputReference | ContainerClusterAddonsConfigParallelstoreCsiDriverConfig): any;
export declare function containerClusterAddonsConfigParallelstoreCsiDriverConfigToHclTerraform(struct?: ContainerClusterAddonsConfigParallelstoreCsiDriverConfigOutputReference | ContainerClusterAddonsConfigParallelstoreCsiDriverConfig): any;
export declare class ContainerClusterAddonsConfigParallelstoreCsiDriverConfigOutputReference 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(): ContainerClusterAddonsConfigParallelstoreCsiDriverConfig | undefined;
    set internalValue(value: ContainerClusterAddonsConfigParallelstoreCsiDriverConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigToTerraform(struct?: ContainerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutputReference | ContainerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig): any;
export declare function containerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigToHclTerraform(struct?: ContainerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutputReference | ContainerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig): any;
export declare class ContainerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutputReference 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(): ContainerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig | undefined;
    set internalValue(value: ContainerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigToTerraform(struct?: ContainerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutputReference | ContainerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig): any;
export declare function containerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigToHclTerraform(struct?: ContainerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutputReference | ContainerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig): any;
export declare class ContainerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutputReference 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(): ContainerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig | undefined;
    set internalValue(value: ContainerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterAddonsConfigRayOperatorConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
    /**
    * ray_cluster_logging_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#ray_cluster_logging_config ContainerCluster#ray_cluster_logging_config}
    */
    readonly rayClusterLoggingConfig?: ContainerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig;
    /**
    * ray_cluster_monitoring_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#ray_cluster_monitoring_config ContainerCluster#ray_cluster_monitoring_config}
    */
    readonly rayClusterMonitoringConfig?: ContainerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig;
}
export declare function containerClusterAddonsConfigRayOperatorConfigToTerraform(struct?: ContainerClusterAddonsConfigRayOperatorConfig | cdktf.IResolvable): any;
export declare function containerClusterAddonsConfigRayOperatorConfigToHclTerraform(struct?: ContainerClusterAddonsConfigRayOperatorConfig | cdktf.IResolvable): any;
export declare class ContainerClusterAddonsConfigRayOperatorConfigOutputReference 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(): ContainerClusterAddonsConfigRayOperatorConfig | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterAddonsConfigRayOperatorConfig | cdktf.IResolvable | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
    private _rayClusterLoggingConfig;
    get rayClusterLoggingConfig(): ContainerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutputReference;
    putRayClusterLoggingConfig(value: ContainerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig): void;
    resetRayClusterLoggingConfig(): void;
    get rayClusterLoggingConfigInput(): ContainerClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig | undefined;
    private _rayClusterMonitoringConfig;
    get rayClusterMonitoringConfig(): ContainerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutputReference;
    putRayClusterMonitoringConfig(value: ContainerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig): void;
    resetRayClusterMonitoringConfig(): void;
    get rayClusterMonitoringConfigInput(): ContainerClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig | undefined;
}
export declare class ContainerClusterAddonsConfigRayOperatorConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterAddonsConfigRayOperatorConfig[] | 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): ContainerClusterAddonsConfigRayOperatorConfigOutputReference;
}
export interface ContainerClusterAddonsConfigStatefulHaConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterAddonsConfigStatefulHaConfigToTerraform(struct?: ContainerClusterAddonsConfigStatefulHaConfigOutputReference | ContainerClusterAddonsConfigStatefulHaConfig): any;
export declare function containerClusterAddonsConfigStatefulHaConfigToHclTerraform(struct?: ContainerClusterAddonsConfigStatefulHaConfigOutputReference | ContainerClusterAddonsConfigStatefulHaConfig): any;
export declare class ContainerClusterAddonsConfigStatefulHaConfigOutputReference 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(): ContainerClusterAddonsConfigStatefulHaConfig | undefined;
    set internalValue(value: ContainerClusterAddonsConfigStatefulHaConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterAddonsConfig {
    /**
    * cloudrun_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cloudrun_config ContainerCluster#cloudrun_config}
    */
    readonly cloudrunConfig?: ContainerClusterAddonsConfigCloudrunConfig;
    /**
    * config_connector_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#config_connector_config ContainerCluster#config_connector_config}
    */
    readonly configConnectorConfig?: ContainerClusterAddonsConfigConfigConnectorConfig;
    /**
    * dns_cache_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#dns_cache_config ContainerCluster#dns_cache_config}
    */
    readonly dnsCacheConfig?: ContainerClusterAddonsConfigDnsCacheConfig;
    /**
    * gce_persistent_disk_csi_driver_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gce_persistent_disk_csi_driver_config ContainerCluster#gce_persistent_disk_csi_driver_config}
    */
    readonly gcePersistentDiskCsiDriverConfig?: ContainerClusterAddonsConfigGcePersistentDiskCsiDriverConfig;
    /**
    * gcp_filestore_csi_driver_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gcp_filestore_csi_driver_config ContainerCluster#gcp_filestore_csi_driver_config}
    */
    readonly gcpFilestoreCsiDriverConfig?: ContainerClusterAddonsConfigGcpFilestoreCsiDriverConfig;
    /**
    * gcs_fuse_csi_driver_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gcs_fuse_csi_driver_config ContainerCluster#gcs_fuse_csi_driver_config}
    */
    readonly gcsFuseCsiDriverConfig?: ContainerClusterAddonsConfigGcsFuseCsiDriverConfig;
    /**
    * gke_backup_agent_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gke_backup_agent_config ContainerCluster#gke_backup_agent_config}
    */
    readonly gkeBackupAgentConfig?: ContainerClusterAddonsConfigGkeBackupAgentConfig;
    /**
    * horizontal_pod_autoscaling block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#horizontal_pod_autoscaling ContainerCluster#horizontal_pod_autoscaling}
    */
    readonly horizontalPodAutoscaling?: ContainerClusterAddonsConfigHorizontalPodAutoscaling;
    /**
    * http_load_balancing block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#http_load_balancing ContainerCluster#http_load_balancing}
    */
    readonly httpLoadBalancing?: ContainerClusterAddonsConfigHttpLoadBalancing;
    /**
    * network_policy_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#network_policy_config ContainerCluster#network_policy_config}
    */
    readonly networkPolicyConfig?: ContainerClusterAddonsConfigNetworkPolicyConfig;
    /**
    * parallelstore_csi_driver_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#parallelstore_csi_driver_config ContainerCluster#parallelstore_csi_driver_config}
    */
    readonly parallelstoreCsiDriverConfig?: ContainerClusterAddonsConfigParallelstoreCsiDriverConfig;
    /**
    * ray_operator_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#ray_operator_config ContainerCluster#ray_operator_config}
    */
    readonly rayOperatorConfig?: ContainerClusterAddonsConfigRayOperatorConfig[] | cdktf.IResolvable;
    /**
    * stateful_ha_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#stateful_ha_config ContainerCluster#stateful_ha_config}
    */
    readonly statefulHaConfig?: ContainerClusterAddonsConfigStatefulHaConfig;
}
export declare function containerClusterAddonsConfigToTerraform(struct?: ContainerClusterAddonsConfigOutputReference | ContainerClusterAddonsConfig): any;
export declare function containerClusterAddonsConfigToHclTerraform(struct?: ContainerClusterAddonsConfigOutputReference | ContainerClusterAddonsConfig): any;
export declare class ContainerClusterAddonsConfigOutputReference 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(): ContainerClusterAddonsConfig | undefined;
    set internalValue(value: ContainerClusterAddonsConfig | undefined);
    private _cloudrunConfig;
    get cloudrunConfig(): ContainerClusterAddonsConfigCloudrunConfigOutputReference;
    putCloudrunConfig(value: ContainerClusterAddonsConfigCloudrunConfig): void;
    resetCloudrunConfig(): void;
    get cloudrunConfigInput(): ContainerClusterAddonsConfigCloudrunConfig | undefined;
    private _configConnectorConfig;
    get configConnectorConfig(): ContainerClusterAddonsConfigConfigConnectorConfigOutputReference;
    putConfigConnectorConfig(value: ContainerClusterAddonsConfigConfigConnectorConfig): void;
    resetConfigConnectorConfig(): void;
    get configConnectorConfigInput(): ContainerClusterAddonsConfigConfigConnectorConfig | undefined;
    private _dnsCacheConfig;
    get dnsCacheConfig(): ContainerClusterAddonsConfigDnsCacheConfigOutputReference;
    putDnsCacheConfig(value: ContainerClusterAddonsConfigDnsCacheConfig): void;
    resetDnsCacheConfig(): void;
    get dnsCacheConfigInput(): ContainerClusterAddonsConfigDnsCacheConfig | undefined;
    private _gcePersistentDiskCsiDriverConfig;
    get gcePersistentDiskCsiDriverConfig(): ContainerClusterAddonsConfigGcePersistentDiskCsiDriverConfigOutputReference;
    putGcePersistentDiskCsiDriverConfig(value: ContainerClusterAddonsConfigGcePersistentDiskCsiDriverConfig): void;
    resetGcePersistentDiskCsiDriverConfig(): void;
    get gcePersistentDiskCsiDriverConfigInput(): ContainerClusterAddonsConfigGcePersistentDiskCsiDriverConfig | undefined;
    private _gcpFilestoreCsiDriverConfig;
    get gcpFilestoreCsiDriverConfig(): ContainerClusterAddonsConfigGcpFilestoreCsiDriverConfigOutputReference;
    putGcpFilestoreCsiDriverConfig(value: ContainerClusterAddonsConfigGcpFilestoreCsiDriverConfig): void;
    resetGcpFilestoreCsiDriverConfig(): void;
    get gcpFilestoreCsiDriverConfigInput(): ContainerClusterAddonsConfigGcpFilestoreCsiDriverConfig | undefined;
    private _gcsFuseCsiDriverConfig;
    get gcsFuseCsiDriverConfig(): ContainerClusterAddonsConfigGcsFuseCsiDriverConfigOutputReference;
    putGcsFuseCsiDriverConfig(value: ContainerClusterAddonsConfigGcsFuseCsiDriverConfig): void;
    resetGcsFuseCsiDriverConfig(): void;
    get gcsFuseCsiDriverConfigInput(): ContainerClusterAddonsConfigGcsFuseCsiDriverConfig | undefined;
    private _gkeBackupAgentConfig;
    get gkeBackupAgentConfig(): ContainerClusterAddonsConfigGkeBackupAgentConfigOutputReference;
    putGkeBackupAgentConfig(value: ContainerClusterAddonsConfigGkeBackupAgentConfig): void;
    resetGkeBackupAgentConfig(): void;
    get gkeBackupAgentConfigInput(): ContainerClusterAddonsConfigGkeBackupAgentConfig | undefined;
    private _horizontalPodAutoscaling;
    get horizontalPodAutoscaling(): ContainerClusterAddonsConfigHorizontalPodAutoscalingOutputReference;
    putHorizontalPodAutoscaling(value: ContainerClusterAddonsConfigHorizontalPodAutoscaling): void;
    resetHorizontalPodAutoscaling(): void;
    get horizontalPodAutoscalingInput(): ContainerClusterAddonsConfigHorizontalPodAutoscaling | undefined;
    private _httpLoadBalancing;
    get httpLoadBalancing(): ContainerClusterAddonsConfigHttpLoadBalancingOutputReference;
    putHttpLoadBalancing(value: ContainerClusterAddonsConfigHttpLoadBalancing): void;
    resetHttpLoadBalancing(): void;
    get httpLoadBalancingInput(): ContainerClusterAddonsConfigHttpLoadBalancing | undefined;
    private _networkPolicyConfig;
    get networkPolicyConfig(): ContainerClusterAddonsConfigNetworkPolicyConfigOutputReference;
    putNetworkPolicyConfig(value: ContainerClusterAddonsConfigNetworkPolicyConfig): void;
    resetNetworkPolicyConfig(): void;
    get networkPolicyConfigInput(): ContainerClusterAddonsConfigNetworkPolicyConfig | undefined;
    private _parallelstoreCsiDriverConfig;
    get parallelstoreCsiDriverConfig(): ContainerClusterAddonsConfigParallelstoreCsiDriverConfigOutputReference;
    putParallelstoreCsiDriverConfig(value: ContainerClusterAddonsConfigParallelstoreCsiDriverConfig): void;
    resetParallelstoreCsiDriverConfig(): void;
    get parallelstoreCsiDriverConfigInput(): ContainerClusterAddonsConfigParallelstoreCsiDriverConfig | undefined;
    private _rayOperatorConfig;
    get rayOperatorConfig(): ContainerClusterAddonsConfigRayOperatorConfigList;
    putRayOperatorConfig(value: ContainerClusterAddonsConfigRayOperatorConfig[] | cdktf.IResolvable): void;
    resetRayOperatorConfig(): void;
    get rayOperatorConfigInput(): cdktf.IResolvable | ContainerClusterAddonsConfigRayOperatorConfig[] | undefined;
    private _statefulHaConfig;
    get statefulHaConfig(): ContainerClusterAddonsConfigStatefulHaConfigOutputReference;
    putStatefulHaConfig(value: ContainerClusterAddonsConfigStatefulHaConfig): void;
    resetStatefulHaConfig(): void;
    get statefulHaConfigInput(): ContainerClusterAddonsConfigStatefulHaConfig | undefined;
}
export interface ContainerClusterAuthenticatorGroupsConfig {
    /**
    * The name of the RBAC security group for use with Google security groups in Kubernetes RBAC. Group name must be in format gke-security-groups@yourdomain.com.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#security_group ContainerCluster#security_group}
    */
    readonly securityGroup: string;
}
export declare function containerClusterAuthenticatorGroupsConfigToTerraform(struct?: ContainerClusterAuthenticatorGroupsConfigOutputReference | ContainerClusterAuthenticatorGroupsConfig): any;
export declare function containerClusterAuthenticatorGroupsConfigToHclTerraform(struct?: ContainerClusterAuthenticatorGroupsConfigOutputReference | ContainerClusterAuthenticatorGroupsConfig): any;
export declare class ContainerClusterAuthenticatorGroupsConfigOutputReference 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(): ContainerClusterAuthenticatorGroupsConfig | undefined;
    set internalValue(value: ContainerClusterAuthenticatorGroupsConfig | undefined);
    private _securityGroup?;
    get securityGroup(): string;
    set securityGroup(value: string);
    get securityGroupInput(): string | undefined;
}
export interface ContainerClusterBinaryAuthorization {
    /**
    * Enable Binary Authorization for this cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled?: boolean | cdktf.IResolvable;
    /**
    * Mode of operation for Binary Authorization policy evaluation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#evaluation_mode ContainerCluster#evaluation_mode}
    */
    readonly evaluationMode?: string;
}
export declare function containerClusterBinaryAuthorizationToTerraform(struct?: ContainerClusterBinaryAuthorizationOutputReference | ContainerClusterBinaryAuthorization): any;
export declare function containerClusterBinaryAuthorizationToHclTerraform(struct?: ContainerClusterBinaryAuthorizationOutputReference | ContainerClusterBinaryAuthorization): any;
export declare class ContainerClusterBinaryAuthorizationOutputReference 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(): ContainerClusterBinaryAuthorization | undefined;
    set internalValue(value: ContainerClusterBinaryAuthorization | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    resetEnabled(): void;
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
    private _evaluationMode?;
    get evaluationMode(): string;
    set evaluationMode(value: string);
    resetEvaluationMode(): void;
    get evaluationModeInput(): string | undefined;
}
export interface ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptions {
}
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptionsToTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptions): any;
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptionsToHclTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptions): any;
export declare class ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptionsOutputReference 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(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptions | undefined;
    set internalValue(value: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptions | undefined);
    get autoUpgradeStartTime(): string;
    get description(): string;
}
export declare class ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptionsList 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): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptionsOutputReference;
}
export interface ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagement {
    /**
    * Specifies whether the node auto-repair is enabled for the node pool. If enabled, the nodes in this node pool will be monitored and, if they fail health checks too many times, an automatic repair action will be triggered.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#auto_repair ContainerCluster#auto_repair}
    */
    readonly autoRepair?: boolean | cdktf.IResolvable;
    /**
    * Specifies whether node auto-upgrade is enabled for the node pool. If enabled, node auto-upgrade helps keep the nodes in your node pool up to date with the latest release version of Kubernetes.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#auto_upgrade ContainerCluster#auto_upgrade}
    */
    readonly autoUpgrade?: boolean | cdktf.IResolvable;
}
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsManagementToTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagementOutputReference | ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagement): any;
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsManagementToHclTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagementOutputReference | ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagement): any;
export declare class ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagementOutputReference 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(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagement | undefined;
    set internalValue(value: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagement | undefined);
    private _autoRepair?;
    get autoRepair(): boolean | cdktf.IResolvable;
    set autoRepair(value: boolean | cdktf.IResolvable);
    resetAutoRepair(): void;
    get autoRepairInput(): boolean | cdktf.IResolvable | undefined;
    private _autoUpgrade?;
    get autoUpgrade(): boolean | cdktf.IResolvable;
    set autoUpgrade(value: boolean | cdktf.IResolvable);
    resetAutoUpgrade(): void;
    get autoUpgradeInput(): boolean | cdktf.IResolvable | undefined;
    private _upgradeOptions;
    get upgradeOptions(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOptionsList;
}
export interface ContainerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig {
    /**
    * Defines whether the instance has integrity monitoring enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_integrity_monitoring ContainerCluster#enable_integrity_monitoring}
    */
    readonly enableIntegrityMonitoring?: boolean | cdktf.IResolvable;
    /**
    * Defines whether the instance has Secure Boot enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_secure_boot ContainerCluster#enable_secure_boot}
    */
    readonly enableSecureBoot?: boolean | cdktf.IResolvable;
}
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfigToTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfigOutputReference | ContainerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig): any;
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfigToHclTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfigOutputReference | ContainerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig): any;
export declare class ContainerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfigOutputReference 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(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig | undefined;
    set internalValue(value: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig | undefined);
    private _enableIntegrityMonitoring?;
    get enableIntegrityMonitoring(): boolean | cdktf.IResolvable;
    set enableIntegrityMonitoring(value: boolean | cdktf.IResolvable);
    resetEnableIntegrityMonitoring(): void;
    get enableIntegrityMonitoringInput(): boolean | cdktf.IResolvable | undefined;
    private _enableSecureBoot?;
    get enableSecureBoot(): boolean | cdktf.IResolvable;
    set enableSecureBoot(value: boolean | cdktf.IResolvable);
    resetEnableSecureBoot(): void;
    get enableSecureBootInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy {
    /**
    * Number of blue nodes to drain in a batch.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#batch_node_count ContainerCluster#batch_node_count}
    */
    readonly batchNodeCount?: number;
    /**
    * Percentage of the bool pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#batch_percentage ContainerCluster#batch_percentage}
    */
    readonly batchPercentage?: number;
    /**
    * Soak time after each batch gets drained.
    *
    * 																			A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#batch_soak_duration ContainerCluster#batch_soak_duration}
    */
    readonly batchSoakDuration?: string;
}
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyToTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyOutputReference | ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy): any;
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyToHclTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyOutputReference | ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy): any;
export declare class ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyOutputReference 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(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy | undefined;
    set internalValue(value: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy | undefined);
    private _batchNodeCount?;
    get batchNodeCount(): number;
    set batchNodeCount(value: number);
    resetBatchNodeCount(): void;
    get batchNodeCountInput(): number | undefined;
    private _batchPercentage?;
    get batchPercentage(): number;
    set batchPercentage(value: number);
    resetBatchPercentage(): void;
    get batchPercentageInput(): number | undefined;
    private _batchSoakDuration?;
    get batchSoakDuration(): string;
    set batchSoakDuration(value: string);
    resetBatchSoakDuration(): void;
    get batchSoakDurationInput(): string | undefined;
}
export interface ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettings {
    /**
    * Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.
    *
    * 																A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#node_pool_soak_duration ContainerCluster#node_pool_soak_duration}
    */
    readonly nodePoolSoakDuration?: string;
    /**
    * standard_rollout_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#standard_rollout_policy ContainerCluster#standard_rollout_policy}
    */
    readonly standardRolloutPolicy?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy;
}
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsToTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsOutputReference | ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettings): any;
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsToHclTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsOutputReference | ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettings): any;
export declare class ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsOutputReference 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(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettings | undefined;
    set internalValue(value: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettings | undefined);
    private _nodePoolSoakDuration?;
    get nodePoolSoakDuration(): string;
    set nodePoolSoakDuration(value: string);
    resetNodePoolSoakDuration(): void;
    get nodePoolSoakDurationInput(): string | undefined;
    private _standardRolloutPolicy;
    get standardRolloutPolicy(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyOutputReference;
    putStandardRolloutPolicy(value: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy): void;
    resetStandardRolloutPolicy(): void;
    get standardRolloutPolicyInput(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy | undefined;
}
export interface ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings {
    /**
    * The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#max_surge ContainerCluster#max_surge}
    */
    readonly maxSurge?: number;
    /**
    * The maximum number of nodes that can be simultaneously unavailable during the upgrade process.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#max_unavailable ContainerCluster#max_unavailable}
    */
    readonly maxUnavailable?: number;
    /**
    * Update strategy of the node pool.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#strategy ContainerCluster#strategy}
    */
    readonly strategy?: string;
    /**
    * blue_green_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#blue_green_settings ContainerCluster#blue_green_settings}
    */
    readonly blueGreenSettings?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettings;
}
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsToTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsOutputReference | ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings): any;
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsToHclTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsOutputReference | ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings): any;
export declare class ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsOutputReference 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(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings | undefined;
    set internalValue(value: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings | undefined);
    private _maxSurge?;
    get maxSurge(): number;
    set maxSurge(value: number);
    resetMaxSurge(): void;
    get maxSurgeInput(): number | undefined;
    private _maxUnavailable?;
    get maxUnavailable(): number;
    set maxUnavailable(value: number);
    resetMaxUnavailable(): void;
    get maxUnavailableInput(): number | undefined;
    private _strategy?;
    get strategy(): string;
    set strategy(value: string);
    resetStrategy(): void;
    get strategyInput(): string | undefined;
    private _blueGreenSettings;
    get blueGreenSettings(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsOutputReference;
    putBlueGreenSettings(value: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettings): void;
    resetBlueGreenSettings(): void;
    get blueGreenSettingsInput(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettings | undefined;
}
export interface ContainerClusterClusterAutoscalingAutoProvisioningDefaults {
    /**
    * The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#boot_disk_kms_key ContainerCluster#boot_disk_kms_key}
    */
    readonly bootDiskKmsKey?: string;
    /**
    * Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disk_size ContainerCluster#disk_size}
    */
    readonly diskSize?: number;
    /**
    * Type of the disk attached to each node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disk_type ContainerCluster#disk_type}
    */
    readonly diskType?: string;
    /**
    * The default image type used by NAP once a new node pool is being created.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#image_type ContainerCluster#image_type}
    */
    readonly imageType?: string;
    /**
    * Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#min_cpu_platform ContainerCluster#min_cpu_platform}
    */
    readonly minCpuPlatform?: string;
    /**
    * Scopes that are used by NAP when creating node pools.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#oauth_scopes ContainerCluster#oauth_scopes}
    */
    readonly oauthScopes?: string[];
    /**
    * The Google Cloud Platform Service Account to be used by the node VMs.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#service_account ContainerCluster#service_account}
    */
    readonly serviceAccount?: string;
    /**
    * management block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#management ContainerCluster#management}
    */
    readonly management?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagement;
    /**
    * shielded_instance_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#shielded_instance_config ContainerCluster#shielded_instance_config}
    */
    readonly shieldedInstanceConfig?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig;
    /**
    * upgrade_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#upgrade_settings ContainerCluster#upgrade_settings}
    */
    readonly upgradeSettings?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings;
}
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsToTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsOutputReference | ContainerClusterClusterAutoscalingAutoProvisioningDefaults): any;
export declare function containerClusterClusterAutoscalingAutoProvisioningDefaultsToHclTerraform(struct?: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsOutputReference | ContainerClusterClusterAutoscalingAutoProvisioningDefaults): any;
export declare class ContainerClusterClusterAutoscalingAutoProvisioningDefaultsOutputReference 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(): ContainerClusterClusterAutoscalingAutoProvisioningDefaults | undefined;
    set internalValue(value: ContainerClusterClusterAutoscalingAutoProvisioningDefaults | undefined);
    private _bootDiskKmsKey?;
    get bootDiskKmsKey(): string;
    set bootDiskKmsKey(value: string);
    resetBootDiskKmsKey(): void;
    get bootDiskKmsKeyInput(): string | undefined;
    private _diskSize?;
    get diskSize(): number;
    set diskSize(value: number);
    resetDiskSize(): void;
    get diskSizeInput(): number | undefined;
    private _diskType?;
    get diskType(): string;
    set diskType(value: string);
    resetDiskType(): void;
    get diskTypeInput(): string | undefined;
    private _imageType?;
    get imageType(): string;
    set imageType(value: string);
    resetImageType(): void;
    get imageTypeInput(): string | undefined;
    private _minCpuPlatform?;
    get minCpuPlatform(): string;
    set minCpuPlatform(value: string);
    resetMinCpuPlatform(): void;
    get minCpuPlatformInput(): string | undefined;
    private _oauthScopes?;
    get oauthScopes(): string[];
    set oauthScopes(value: string[]);
    resetOauthScopes(): void;
    get oauthScopesInput(): string[] | undefined;
    private _serviceAccount?;
    get serviceAccount(): string;
    set serviceAccount(value: string);
    resetServiceAccount(): void;
    get serviceAccountInput(): string | undefined;
    private _management;
    get management(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagementOutputReference;
    putManagement(value: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagement): void;
    resetManagement(): void;
    get managementInput(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsManagement | undefined;
    private _shieldedInstanceConfig;
    get shieldedInstanceConfig(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfigOutputReference;
    putShieldedInstanceConfig(value: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig): void;
    resetShieldedInstanceConfig(): void;
    get shieldedInstanceConfigInput(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig | undefined;
    private _upgradeSettings;
    get upgradeSettings(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsOutputReference;
    putUpgradeSettings(value: ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings): void;
    resetUpgradeSettings(): void;
    get upgradeSettingsInput(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings | undefined;
}
export interface ContainerClusterClusterAutoscalingResourceLimits {
    /**
    * Maximum amount of the resource in the cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#maximum ContainerCluster#maximum}
    */
    readonly maximum?: number;
    /**
    * Minimum amount of the resource in the cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#minimum ContainerCluster#minimum}
    */
    readonly minimum?: number;
    /**
    * The type of the resource. For example, cpu and memory. See the guide to using Node Auto-Provisioning for a list of types.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#resource_type ContainerCluster#resource_type}
    */
    readonly resourceType: string;
}
export declare function containerClusterClusterAutoscalingResourceLimitsToTerraform(struct?: ContainerClusterClusterAutoscalingResourceLimits | cdktf.IResolvable): any;
export declare function containerClusterClusterAutoscalingResourceLimitsToHclTerraform(struct?: ContainerClusterClusterAutoscalingResourceLimits | cdktf.IResolvable): any;
export declare class ContainerClusterClusterAutoscalingResourceLimitsOutputReference 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(): ContainerClusterClusterAutoscalingResourceLimits | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterClusterAutoscalingResourceLimits | cdktf.IResolvable | undefined);
    private _maximum?;
    get maximum(): number;
    set maximum(value: number);
    resetMaximum(): void;
    get maximumInput(): number | undefined;
    private _minimum?;
    get minimum(): number;
    set minimum(value: number);
    resetMinimum(): void;
    get minimumInput(): number | undefined;
    private _resourceType?;
    get resourceType(): string;
    set resourceType(value: string);
    get resourceTypeInput(): string | undefined;
}
export declare class ContainerClusterClusterAutoscalingResourceLimitsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterClusterAutoscalingResourceLimits[] | 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): ContainerClusterClusterAutoscalingResourceLimitsOutputReference;
}
export interface ContainerClusterClusterAutoscaling {
    /**
    * The list of Google Compute Engine zones in which the NodePool's nodes can be created by NAP.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#auto_provisioning_locations ContainerCluster#auto_provisioning_locations}
    */
    readonly autoProvisioningLocations?: string[];
    /**
    * Configuration options for the Autoscaling profile feature, which lets you choose whether the cluster autoscaler should optimize for resource utilization or resource availability when deciding to remove nodes from a cluster. Can be BALANCED or OPTIMIZE_UTILIZATION. Defaults to BALANCED.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#autoscaling_profile ContainerCluster#autoscaling_profile}
    */
    readonly autoscalingProfile?: string;
    /**
    * Whether node auto-provisioning is enabled. Resource limits for cpu and memory must be defined to enable node auto-provisioning.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled?: boolean | cdktf.IResolvable;
    /**
    * auto_provisioning_defaults block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#auto_provisioning_defaults ContainerCluster#auto_provisioning_defaults}
    */
    readonly autoProvisioningDefaults?: ContainerClusterClusterAutoscalingAutoProvisioningDefaults;
    /**
    * resource_limits block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#resource_limits ContainerCluster#resource_limits}
    */
    readonly resourceLimits?: ContainerClusterClusterAutoscalingResourceLimits[] | cdktf.IResolvable;
}
export declare function containerClusterClusterAutoscalingToTerraform(struct?: ContainerClusterClusterAutoscalingOutputReference | ContainerClusterClusterAutoscaling): any;
export declare function containerClusterClusterAutoscalingToHclTerraform(struct?: ContainerClusterClusterAutoscalingOutputReference | ContainerClusterClusterAutoscaling): any;
export declare class ContainerClusterClusterAutoscalingOutputReference 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(): ContainerClusterClusterAutoscaling | undefined;
    set internalValue(value: ContainerClusterClusterAutoscaling | undefined);
    private _autoProvisioningLocations?;
    get autoProvisioningLocations(): string[];
    set autoProvisioningLocations(value: string[]);
    resetAutoProvisioningLocations(): void;
    get autoProvisioningLocationsInput(): string[] | undefined;
    private _autoscalingProfile?;
    get autoscalingProfile(): string;
    set autoscalingProfile(value: string);
    resetAutoscalingProfile(): void;
    get autoscalingProfileInput(): string | undefined;
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    resetEnabled(): void;
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
    private _autoProvisioningDefaults;
    get autoProvisioningDefaults(): ContainerClusterClusterAutoscalingAutoProvisioningDefaultsOutputReference;
    putAutoProvisioningDefaults(value: ContainerClusterClusterAutoscalingAutoProvisioningDefaults): void;
    resetAutoProvisioningDefaults(): void;
    get autoProvisioningDefaultsInput(): ContainerClusterClusterAutoscalingAutoProvisioningDefaults | undefined;
    private _resourceLimits;
    get resourceLimits(): ContainerClusterClusterAutoscalingResourceLimitsList;
    putResourceLimits(value: ContainerClusterClusterAutoscalingResourceLimits[] | cdktf.IResolvable): void;
    resetResourceLimits(): void;
    get resourceLimitsInput(): cdktf.IResolvable | ContainerClusterClusterAutoscalingResourceLimits[] | undefined;
}
export interface ContainerClusterConfidentialNodes {
    /**
    * Whether Confidential Nodes feature is enabled for all nodes in this cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterConfidentialNodesToTerraform(struct?: ContainerClusterConfidentialNodesOutputReference | ContainerClusterConfidentialNodes): any;
export declare function containerClusterConfidentialNodesToHclTerraform(struct?: ContainerClusterConfidentialNodesOutputReference | ContainerClusterConfidentialNodes): any;
export declare class ContainerClusterConfidentialNodesOutputReference 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(): ContainerClusterConfidentialNodes | undefined;
    set internalValue(value: ContainerClusterConfidentialNodes | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterControlPlaneEndpointsConfigDnsEndpointConfig {
    /**
    * Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#allow_external_traffic ContainerCluster#allow_external_traffic}
    */
    readonly allowExternalTraffic?: boolean | cdktf.IResolvable;
    /**
    * The cluster's DNS endpoint.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#endpoint ContainerCluster#endpoint}
    */
    readonly endpoint?: string;
}
export declare function containerClusterControlPlaneEndpointsConfigDnsEndpointConfigToTerraform(struct?: ContainerClusterControlPlaneEndpointsConfigDnsEndpointConfigOutputReference | ContainerClusterControlPlaneEndpointsConfigDnsEndpointConfig): any;
export declare function containerClusterControlPlaneEndpointsConfigDnsEndpointConfigToHclTerraform(struct?: ContainerClusterControlPlaneEndpointsConfigDnsEndpointConfigOutputReference | ContainerClusterControlPlaneEndpointsConfigDnsEndpointConfig): any;
export declare class ContainerClusterControlPlaneEndpointsConfigDnsEndpointConfigOutputReference 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(): ContainerClusterControlPlaneEndpointsConfigDnsEndpointConfig | undefined;
    set internalValue(value: ContainerClusterControlPlaneEndpointsConfigDnsEndpointConfig | undefined);
    private _allowExternalTraffic?;
    get allowExternalTraffic(): boolean | cdktf.IResolvable;
    set allowExternalTraffic(value: boolean | cdktf.IResolvable);
    resetAllowExternalTraffic(): void;
    get allowExternalTrafficInput(): boolean | cdktf.IResolvable | undefined;
    private _endpoint?;
    get endpoint(): string;
    set endpoint(value: string);
    resetEndpoint(): void;
    get endpointInput(): string | undefined;
}
export interface ContainerClusterControlPlaneEndpointsConfig {
    /**
    * dns_endpoint_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#dns_endpoint_config ContainerCluster#dns_endpoint_config}
    */
    readonly dnsEndpointConfig?: ContainerClusterControlPlaneEndpointsConfigDnsEndpointConfig;
}
export declare function containerClusterControlPlaneEndpointsConfigToTerraform(struct?: ContainerClusterControlPlaneEndpointsConfigOutputReference | ContainerClusterControlPlaneEndpointsConfig): any;
export declare function containerClusterControlPlaneEndpointsConfigToHclTerraform(struct?: ContainerClusterControlPlaneEndpointsConfigOutputReference | ContainerClusterControlPlaneEndpointsConfig): any;
export declare class ContainerClusterControlPlaneEndpointsConfigOutputReference 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(): ContainerClusterControlPlaneEndpointsConfig | undefined;
    set internalValue(value: ContainerClusterControlPlaneEndpointsConfig | undefined);
    private _dnsEndpointConfig;
    get dnsEndpointConfig(): ContainerClusterControlPlaneEndpointsConfigDnsEndpointConfigOutputReference;
    putDnsEndpointConfig(value: ContainerClusterControlPlaneEndpointsConfigDnsEndpointConfig): void;
    resetDnsEndpointConfig(): void;
    get dnsEndpointConfigInput(): ContainerClusterControlPlaneEndpointsConfigDnsEndpointConfig | undefined;
}
export interface ContainerClusterCostManagementConfig {
    /**
    * Whether to enable GKE cost allocation. When you enable GKE cost allocation, the cluster name and namespace of your GKE workloads appear in the labels field of the billing export to BigQuery. Defaults to false.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterCostManagementConfigToTerraform(struct?: ContainerClusterCostManagementConfigOutputReference | ContainerClusterCostManagementConfig): any;
export declare function containerClusterCostManagementConfigToHclTerraform(struct?: ContainerClusterCostManagementConfigOutputReference | ContainerClusterCostManagementConfig): any;
export declare class ContainerClusterCostManagementConfigOutputReference 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(): ContainerClusterCostManagementConfig | undefined;
    set internalValue(value: ContainerClusterCostManagementConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterDatabaseEncryption {
    /**
    * The key to use to encrypt/decrypt secrets.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#key_name ContainerCluster#key_name}
    */
    readonly keyName?: string;
    /**
    * ENCRYPTED or DECRYPTED.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#state ContainerCluster#state}
    */
    readonly state: string;
}
export declare function containerClusterDatabaseEncryptionToTerraform(struct?: ContainerClusterDatabaseEncryptionOutputReference | ContainerClusterDatabaseEncryption): any;
export declare function containerClusterDatabaseEncryptionToHclTerraform(struct?: ContainerClusterDatabaseEncryptionOutputReference | ContainerClusterDatabaseEncryption): any;
export declare class ContainerClusterDatabaseEncryptionOutputReference 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(): ContainerClusterDatabaseEncryption | undefined;
    set internalValue(value: ContainerClusterDatabaseEncryption | undefined);
    private _keyName?;
    get keyName(): string;
    set keyName(value: string);
    resetKeyName(): void;
    get keyNameInput(): string | undefined;
    private _state?;
    get state(): string;
    set state(value: string);
    get stateInput(): string | undefined;
}
export interface ContainerClusterDefaultSnatStatus {
    /**
    * When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disabled ContainerCluster#disabled}
    */
    readonly disabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterDefaultSnatStatusToTerraform(struct?: ContainerClusterDefaultSnatStatusOutputReference | ContainerClusterDefaultSnatStatus): any;
export declare function containerClusterDefaultSnatStatusToHclTerraform(struct?: ContainerClusterDefaultSnatStatusOutputReference | ContainerClusterDefaultSnatStatus): any;
export declare class ContainerClusterDefaultSnatStatusOutputReference 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(): ContainerClusterDefaultSnatStatus | undefined;
    set internalValue(value: ContainerClusterDefaultSnatStatus | undefined);
    private _disabled?;
    get disabled(): boolean | cdktf.IResolvable;
    set disabled(value: boolean | cdktf.IResolvable);
    get disabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterDnsConfig {
    /**
    * Enable additive VPC scope DNS in a GKE cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#additive_vpc_scope_dns_domain ContainerCluster#additive_vpc_scope_dns_domain}
    */
    readonly additiveVpcScopeDnsDomain?: string;
    /**
    * Which in-cluster DNS provider should be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cluster_dns ContainerCluster#cluster_dns}
    */
    readonly clusterDns?: string;
    /**
    * The suffix used for all cluster service records.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cluster_dns_domain ContainerCluster#cluster_dns_domain}
    */
    readonly clusterDnsDomain?: string;
    /**
    * The scope of access to cluster DNS records.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cluster_dns_scope ContainerCluster#cluster_dns_scope}
    */
    readonly clusterDnsScope?: string;
}
export declare function containerClusterDnsConfigToTerraform(struct?: ContainerClusterDnsConfigOutputReference | ContainerClusterDnsConfig): any;
export declare function containerClusterDnsConfigToHclTerraform(struct?: ContainerClusterDnsConfigOutputReference | ContainerClusterDnsConfig): any;
export declare class ContainerClusterDnsConfigOutputReference 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(): ContainerClusterDnsConfig | undefined;
    set internalValue(value: ContainerClusterDnsConfig | undefined);
    private _additiveVpcScopeDnsDomain?;
    get additiveVpcScopeDnsDomain(): string;
    set additiveVpcScopeDnsDomain(value: string);
    resetAdditiveVpcScopeDnsDomain(): void;
    get additiveVpcScopeDnsDomainInput(): string | undefined;
    private _clusterDns?;
    get clusterDns(): string;
    set clusterDns(value: string);
    resetClusterDns(): void;
    get clusterDnsInput(): string | undefined;
    private _clusterDnsDomain?;
    get clusterDnsDomain(): string;
    set clusterDnsDomain(value: string);
    resetClusterDnsDomain(): void;
    get clusterDnsDomainInput(): string | undefined;
    private _clusterDnsScope?;
    get clusterDnsScope(): string;
    set clusterDnsScope(value: string);
    resetClusterDnsScope(): void;
    get clusterDnsScopeInput(): string | undefined;
}
export interface ContainerClusterEnableK8SBetaApis {
    /**
    * Enabled Kubernetes Beta APIs.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled_apis ContainerCluster#enabled_apis}
    */
    readonly enabledApis: string[];
}
export declare function containerClusterEnableK8SBetaApisToTerraform(struct?: ContainerClusterEnableK8SBetaApisOutputReference | ContainerClusterEnableK8SBetaApis): any;
export declare function containerClusterEnableK8SBetaApisToHclTerraform(struct?: ContainerClusterEnableK8SBetaApisOutputReference | ContainerClusterEnableK8SBetaApis): any;
export declare class ContainerClusterEnableK8SBetaApisOutputReference 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(): ContainerClusterEnableK8SBetaApis | undefined;
    set internalValue(value: ContainerClusterEnableK8SBetaApis | undefined);
    private _enabledApis?;
    get enabledApis(): string[];
    set enabledApis(value: string[]);
    get enabledApisInput(): string[] | undefined;
}
export interface ContainerClusterEnterpriseConfig {
    /**
    * Indicates the desired cluster tier. Available options include STANDARD and ENTERPRISE.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#desired_tier ContainerCluster#desired_tier}
    */
    readonly desiredTier?: string;
}
export declare function containerClusterEnterpriseConfigToTerraform(struct?: ContainerClusterEnterpriseConfigOutputReference | ContainerClusterEnterpriseConfig): any;
export declare function containerClusterEnterpriseConfigToHclTerraform(struct?: ContainerClusterEnterpriseConfigOutputReference | ContainerClusterEnterpriseConfig): any;
export declare class ContainerClusterEnterpriseConfigOutputReference 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(): ContainerClusterEnterpriseConfig | undefined;
    set internalValue(value: ContainerClusterEnterpriseConfig | undefined);
    get clusterTier(): string;
    private _desiredTier?;
    get desiredTier(): string;
    set desiredTier(value: string);
    resetDesiredTier(): void;
    get desiredTierInput(): string | undefined;
}
export interface ContainerClusterFleet {
    /**
    * The Fleet host project of the cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#project ContainerCluster#project}
    */
    readonly project?: string;
}
export declare function containerClusterFleetToTerraform(struct?: ContainerClusterFleetOutputReference | ContainerClusterFleet): any;
export declare function containerClusterFleetToHclTerraform(struct?: ContainerClusterFleetOutputReference | ContainerClusterFleet): any;
export declare class ContainerClusterFleetOutputReference 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(): ContainerClusterFleet | undefined;
    set internalValue(value: ContainerClusterFleet | undefined);
    get membership(): string;
    get membershipId(): string;
    get membershipLocation(): string;
    get preRegistered(): cdktf.IResolvable;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
}
export interface ContainerClusterGatewayApiConfig {
    /**
    * The Gateway API release channel to use for Gateway API.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#channel ContainerCluster#channel}
    */
    readonly channel: string;
}
export declare function containerClusterGatewayApiConfigToTerraform(struct?: ContainerClusterGatewayApiConfigOutputReference | ContainerClusterGatewayApiConfig): any;
export declare function containerClusterGatewayApiConfigToHclTerraform(struct?: ContainerClusterGatewayApiConfigOutputReference | ContainerClusterGatewayApiConfig): any;
export declare class ContainerClusterGatewayApiConfigOutputReference 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(): ContainerClusterGatewayApiConfig | undefined;
    set internalValue(value: ContainerClusterGatewayApiConfig | undefined);
    private _channel?;
    get channel(): string;
    set channel(value: string);
    get channelInput(): string | undefined;
}
export interface ContainerClusterIdentityServiceConfig {
    /**
    * Whether to enable the Identity Service component.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled?: boolean | cdktf.IResolvable;
}
export declare function containerClusterIdentityServiceConfigToTerraform(struct?: ContainerClusterIdentityServiceConfigOutputReference | ContainerClusterIdentityServiceConfig): any;
export declare function containerClusterIdentityServiceConfigToHclTerraform(struct?: ContainerClusterIdentityServiceConfigOutputReference | ContainerClusterIdentityServiceConfig): any;
export declare class ContainerClusterIdentityServiceConfigOutputReference 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(): ContainerClusterIdentityServiceConfig | undefined;
    set internalValue(value: ContainerClusterIdentityServiceConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    resetEnabled(): void;
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterIpAllocationPolicyAdditionalPodRangesConfig {
    /**
    * Name for pod secondary ipv4 range which has the actual range defined ahead.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#pod_range_names ContainerCluster#pod_range_names}
    */
    readonly podRangeNames: string[];
}
export declare function containerClusterIpAllocationPolicyAdditionalPodRangesConfigToTerraform(struct?: ContainerClusterIpAllocationPolicyAdditionalPodRangesConfigOutputReference | ContainerClusterIpAllocationPolicyAdditionalPodRangesConfig): any;
export declare function containerClusterIpAllocationPolicyAdditionalPodRangesConfigToHclTerraform(struct?: ContainerClusterIpAllocationPolicyAdditionalPodRangesConfigOutputReference | ContainerClusterIpAllocationPolicyAdditionalPodRangesConfig): any;
export declare class ContainerClusterIpAllocationPolicyAdditionalPodRangesConfigOutputReference 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(): ContainerClusterIpAllocationPolicyAdditionalPodRangesConfig | undefined;
    set internalValue(value: ContainerClusterIpAllocationPolicyAdditionalPodRangesConfig | undefined);
    private _podRangeNames?;
    get podRangeNames(): string[];
    set podRangeNames(value: string[]);
    get podRangeNamesInput(): string[] | undefined;
}
export interface ContainerClusterIpAllocationPolicyPodCidrOverprovisionConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disabled ContainerCluster#disabled}
    */
    readonly disabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterIpAllocationPolicyPodCidrOverprovisionConfigToTerraform(struct?: ContainerClusterIpAllocationPolicyPodCidrOverprovisionConfigOutputReference | ContainerClusterIpAllocationPolicyPodCidrOverprovisionConfig): any;
export declare function containerClusterIpAllocationPolicyPodCidrOverprovisionConfigToHclTerraform(struct?: ContainerClusterIpAllocationPolicyPodCidrOverprovisionConfigOutputReference | ContainerClusterIpAllocationPolicyPodCidrOverprovisionConfig): any;
export declare class ContainerClusterIpAllocationPolicyPodCidrOverprovisionConfigOutputReference 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(): ContainerClusterIpAllocationPolicyPodCidrOverprovisionConfig | undefined;
    set internalValue(value: ContainerClusterIpAllocationPolicyPodCidrOverprovisionConfig | undefined);
    private _disabled?;
    get disabled(): boolean | cdktf.IResolvable;
    set disabled(value: boolean | cdktf.IResolvable);
    get disabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterIpAllocationPolicy {
    /**
    * The IP address range for the cluster pod IPs. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cluster_ipv4_cidr_block ContainerCluster#cluster_ipv4_cidr_block}
    */
    readonly clusterIpv4CidrBlock?: string;
    /**
    * The name of the existing secondary range in the cluster's subnetwork to use for pod IP addresses. Alternatively, cluster_ipv4_cidr_block can be used to automatically create a GKE-managed one.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cluster_secondary_range_name ContainerCluster#cluster_secondary_range_name}
    */
    readonly clusterSecondaryRangeName?: string;
    /**
    * The IP address range of the services IPs in this cluster. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#services_ipv4_cidr_block ContainerCluster#services_ipv4_cidr_block}
    */
    readonly servicesIpv4CidrBlock?: string;
    /**
    * The name of the existing secondary range in the cluster's subnetwork to use for service ClusterIPs. Alternatively, services_ipv4_cidr_block can be used to automatically create a GKE-managed one.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#services_secondary_range_name ContainerCluster#services_secondary_range_name}
    */
    readonly servicesSecondaryRangeName?: string;
    /**
    * The IP Stack type of the cluster. Choose between IPV4 and IPV4_IPV6. Default type is IPV4 Only if not set
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#stack_type ContainerCluster#stack_type}
    */
    readonly stackType?: string;
    /**
    * additional_pod_ranges_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#additional_pod_ranges_config ContainerCluster#additional_pod_ranges_config}
    */
    readonly additionalPodRangesConfig?: ContainerClusterIpAllocationPolicyAdditionalPodRangesConfig;
    /**
    * pod_cidr_overprovision_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#pod_cidr_overprovision_config ContainerCluster#pod_cidr_overprovision_config}
    */
    readonly podCidrOverprovisionConfig?: ContainerClusterIpAllocationPolicyPodCidrOverprovisionConfig;
}
export declare function containerClusterIpAllocationPolicyToTerraform(struct?: ContainerClusterIpAllocationPolicyOutputReference | ContainerClusterIpAllocationPolicy): any;
export declare function containerClusterIpAllocationPolicyToHclTerraform(struct?: ContainerClusterIpAllocationPolicyOutputReference | ContainerClusterIpAllocationPolicy): any;
export declare class ContainerClusterIpAllocationPolicyOutputReference 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(): ContainerClusterIpAllocationPolicy | undefined;
    set internalValue(value: ContainerClusterIpAllocationPolicy | undefined);
    private _clusterIpv4CidrBlock?;
    get clusterIpv4CidrBlock(): string;
    set clusterIpv4CidrBlock(value: string);
    resetClusterIpv4CidrBlock(): void;
    get clusterIpv4CidrBlockInput(): string | undefined;
    private _clusterSecondaryRangeName?;
    get clusterSecondaryRangeName(): string;
    set clusterSecondaryRangeName(value: string);
    resetClusterSecondaryRangeName(): void;
    get clusterSecondaryRangeNameInput(): string | undefined;
    private _servicesIpv4CidrBlock?;
    get servicesIpv4CidrBlock(): string;
    set servicesIpv4CidrBlock(value: string);
    resetServicesIpv4CidrBlock(): void;
    get servicesIpv4CidrBlockInput(): string | undefined;
    private _servicesSecondaryRangeName?;
    get servicesSecondaryRangeName(): string;
    set servicesSecondaryRangeName(value: string);
    resetServicesSecondaryRangeName(): void;
    get servicesSecondaryRangeNameInput(): string | undefined;
    private _stackType?;
    get stackType(): string;
    set stackType(value: string);
    resetStackType(): void;
    get stackTypeInput(): string | undefined;
    private _additionalPodRangesConfig;
    get additionalPodRangesConfig(): ContainerClusterIpAllocationPolicyAdditionalPodRangesConfigOutputReference;
    putAdditionalPodRangesConfig(value: ContainerClusterIpAllocationPolicyAdditionalPodRangesConfig): void;
    resetAdditionalPodRangesConfig(): void;
    get additionalPodRangesConfigInput(): ContainerClusterIpAllocationPolicyAdditionalPodRangesConfig | undefined;
    private _podCidrOverprovisionConfig;
    get podCidrOverprovisionConfig(): ContainerClusterIpAllocationPolicyPodCidrOverprovisionConfigOutputReference;
    putPodCidrOverprovisionConfig(value: ContainerClusterIpAllocationPolicyPodCidrOverprovisionConfig): void;
    resetPodCidrOverprovisionConfig(): void;
    get podCidrOverprovisionConfigInput(): ContainerClusterIpAllocationPolicyPodCidrOverprovisionConfig | undefined;
}
export interface ContainerClusterLoggingConfig {
    /**
    * GKE components exposing logs. Valid values include SYSTEM_COMPONENTS, APISERVER, CONTROLLER_MANAGER, KCP_CONNECTION, KCP_SSHD, SCHEDULER, and WORKLOADS.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_components ContainerCluster#enable_components}
    */
    readonly enableComponents: string[];
}
export declare function containerClusterLoggingConfigToTerraform(struct?: ContainerClusterLoggingConfigOutputReference | ContainerClusterLoggingConfig): any;
export declare function containerClusterLoggingConfigToHclTerraform(struct?: ContainerClusterLoggingConfigOutputReference | ContainerClusterLoggingConfig): any;
export declare class ContainerClusterLoggingConfigOutputReference 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(): ContainerClusterLoggingConfig | undefined;
    set internalValue(value: ContainerClusterLoggingConfig | undefined);
    private _enableComponents?;
    get enableComponents(): string[];
    set enableComponents(value: string[]);
    get enableComponentsInput(): string[] | undefined;
}
export interface ContainerClusterMaintenancePolicyDailyMaintenanceWindow {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#start_time ContainerCluster#start_time}
    */
    readonly startTime: string;
}
export declare function containerClusterMaintenancePolicyDailyMaintenanceWindowToTerraform(struct?: ContainerClusterMaintenancePolicyDailyMaintenanceWindowOutputReference | ContainerClusterMaintenancePolicyDailyMaintenanceWindow): any;
export declare function containerClusterMaintenancePolicyDailyMaintenanceWindowToHclTerraform(struct?: ContainerClusterMaintenancePolicyDailyMaintenanceWindowOutputReference | ContainerClusterMaintenancePolicyDailyMaintenanceWindow): any;
export declare class ContainerClusterMaintenancePolicyDailyMaintenanceWindowOutputReference 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(): ContainerClusterMaintenancePolicyDailyMaintenanceWindow | undefined;
    set internalValue(value: ContainerClusterMaintenancePolicyDailyMaintenanceWindow | undefined);
    get duration(): string;
    private _startTime?;
    get startTime(): string;
    set startTime(value: string);
    get startTimeInput(): string | undefined;
}
export interface ContainerClusterMaintenancePolicyMaintenanceExclusionExclusionOptions {
    /**
    * The scope of automatic upgrades to restrict in the exclusion window.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#scope ContainerCluster#scope}
    */
    readonly scope: string;
}
export declare function containerClusterMaintenancePolicyMaintenanceExclusionExclusionOptionsToTerraform(struct?: ContainerClusterMaintenancePolicyMaintenanceExclusionExclusionOptionsOutputReference | ContainerClusterMaintenancePolicyMaintenanceExclusionExclusionOptions): any;
export declare function containerClusterMaintenancePolicyMaintenanceExclusionExclusionOptionsToHclTerraform(struct?: ContainerClusterMaintenancePolicyMaintenanceExclusionExclusionOptionsOutputReference | ContainerClusterMaintenancePolicyMaintenanceExclusionExclusionOptions): any;
export declare class ContainerClusterMaintenancePolicyMaintenanceExclusionExclusionOptionsOutputReference 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(): ContainerClusterMaintenancePolicyMaintenanceExclusionExclusionOptions | undefined;
    set internalValue(value: ContainerClusterMaintenancePolicyMaintenanceExclusionExclusionOptions | undefined);
    private _scope?;
    get scope(): string;
    set scope(value: string);
    get scopeInput(): string | undefined;
}
export interface ContainerClusterMaintenancePolicyMaintenanceExclusion {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#end_time ContainerCluster#end_time}
    */
    readonly endTime: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#exclusion_name ContainerCluster#exclusion_name}
    */
    readonly exclusionName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#start_time ContainerCluster#start_time}
    */
    readonly startTime: string;
    /**
    * exclusion_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#exclusion_options ContainerCluster#exclusion_options}
    */
    readonly exclusionOptions?: ContainerClusterMaintenancePolicyMaintenanceExclusionExclusionOptions;
}
export declare function containerClusterMaintenancePolicyMaintenanceExclusionToTerraform(struct?: ContainerClusterMaintenancePolicyMaintenanceExclusion | cdktf.IResolvable): any;
export declare function containerClusterMaintenancePolicyMaintenanceExclusionToHclTerraform(struct?: ContainerClusterMaintenancePolicyMaintenanceExclusion | cdktf.IResolvable): any;
export declare class ContainerClusterMaintenancePolicyMaintenanceExclusionOutputReference 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(): ContainerClusterMaintenancePolicyMaintenanceExclusion | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterMaintenancePolicyMaintenanceExclusion | cdktf.IResolvable | undefined);
    private _endTime?;
    get endTime(): string;
    set endTime(value: string);
    get endTimeInput(): string | undefined;
    private _exclusionName?;
    get exclusionName(): string;
    set exclusionName(value: string);
    get exclusionNameInput(): string | undefined;
    private _startTime?;
    get startTime(): string;
    set startTime(value: string);
    get startTimeInput(): string | undefined;
    private _exclusionOptions;
    get exclusionOptions(): ContainerClusterMaintenancePolicyMaintenanceExclusionExclusionOptionsOutputReference;
    putExclusionOptions(value: ContainerClusterMaintenancePolicyMaintenanceExclusionExclusionOptions): void;
    resetExclusionOptions(): void;
    get exclusionOptionsInput(): ContainerClusterMaintenancePolicyMaintenanceExclusionExclusionOptions | undefined;
}
export declare class ContainerClusterMaintenancePolicyMaintenanceExclusionList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterMaintenancePolicyMaintenanceExclusion[] | 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): ContainerClusterMaintenancePolicyMaintenanceExclusionOutputReference;
}
export interface ContainerClusterMaintenancePolicyRecurringWindow {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#end_time ContainerCluster#end_time}
    */
    readonly endTime: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#recurrence ContainerCluster#recurrence}
    */
    readonly recurrence: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#start_time ContainerCluster#start_time}
    */
    readonly startTime: string;
}
export declare function containerClusterMaintenancePolicyRecurringWindowToTerraform(struct?: ContainerClusterMaintenancePolicyRecurringWindowOutputReference | ContainerClusterMaintenancePolicyRecurringWindow): any;
export declare function containerClusterMaintenancePolicyRecurringWindowToHclTerraform(struct?: ContainerClusterMaintenancePolicyRecurringWindowOutputReference | ContainerClusterMaintenancePolicyRecurringWindow): any;
export declare class ContainerClusterMaintenancePolicyRecurringWindowOutputReference 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(): ContainerClusterMaintenancePolicyRecurringWindow | undefined;
    set internalValue(value: ContainerClusterMaintenancePolicyRecurringWindow | undefined);
    private _endTime?;
    get endTime(): string;
    set endTime(value: string);
    get endTimeInput(): string | undefined;
    private _recurrence?;
    get recurrence(): string;
    set recurrence(value: string);
    get recurrenceInput(): string | undefined;
    private _startTime?;
    get startTime(): string;
    set startTime(value: string);
    get startTimeInput(): string | undefined;
}
export interface ContainerClusterMaintenancePolicy {
    /**
    * daily_maintenance_window block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#daily_maintenance_window ContainerCluster#daily_maintenance_window}
    */
    readonly dailyMaintenanceWindow?: ContainerClusterMaintenancePolicyDailyMaintenanceWindow;
    /**
    * maintenance_exclusion block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#maintenance_exclusion ContainerCluster#maintenance_exclusion}
    */
    readonly maintenanceExclusion?: ContainerClusterMaintenancePolicyMaintenanceExclusion[] | cdktf.IResolvable;
    /**
    * recurring_window block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#recurring_window ContainerCluster#recurring_window}
    */
    readonly recurringWindow?: ContainerClusterMaintenancePolicyRecurringWindow;
}
export declare function containerClusterMaintenancePolicyToTerraform(struct?: ContainerClusterMaintenancePolicyOutputReference | ContainerClusterMaintenancePolicy): any;
export declare function containerClusterMaintenancePolicyToHclTerraform(struct?: ContainerClusterMaintenancePolicyOutputReference | ContainerClusterMaintenancePolicy): any;
export declare class ContainerClusterMaintenancePolicyOutputReference 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(): ContainerClusterMaintenancePolicy | undefined;
    set internalValue(value: ContainerClusterMaintenancePolicy | undefined);
    private _dailyMaintenanceWindow;
    get dailyMaintenanceWindow(): ContainerClusterMaintenancePolicyDailyMaintenanceWindowOutputReference;
    putDailyMaintenanceWindow(value: ContainerClusterMaintenancePolicyDailyMaintenanceWindow): void;
    resetDailyMaintenanceWindow(): void;
    get dailyMaintenanceWindowInput(): ContainerClusterMaintenancePolicyDailyMaintenanceWindow | undefined;
    private _maintenanceExclusion;
    get maintenanceExclusion(): ContainerClusterMaintenancePolicyMaintenanceExclusionList;
    putMaintenanceExclusion(value: ContainerClusterMaintenancePolicyMaintenanceExclusion[] | cdktf.IResolvable): void;
    resetMaintenanceExclusion(): void;
    get maintenanceExclusionInput(): cdktf.IResolvable | ContainerClusterMaintenancePolicyMaintenanceExclusion[] | undefined;
    private _recurringWindow;
    get recurringWindow(): ContainerClusterMaintenancePolicyRecurringWindowOutputReference;
    putRecurringWindow(value: ContainerClusterMaintenancePolicyRecurringWindow): void;
    resetRecurringWindow(): void;
    get recurringWindowInput(): ContainerClusterMaintenancePolicyRecurringWindow | undefined;
}
export interface ContainerClusterMasterAuthClientCertificateConfig {
    /**
    * Whether client certificate authorization is enabled for this cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#issue_client_certificate ContainerCluster#issue_client_certificate}
    */
    readonly issueClientCertificate: boolean | cdktf.IResolvable;
}
export declare function containerClusterMasterAuthClientCertificateConfigToTerraform(struct?: ContainerClusterMasterAuthClientCertificateConfigOutputReference | ContainerClusterMasterAuthClientCertificateConfig): any;
export declare function containerClusterMasterAuthClientCertificateConfigToHclTerraform(struct?: ContainerClusterMasterAuthClientCertificateConfigOutputReference | ContainerClusterMasterAuthClientCertificateConfig): any;
export declare class ContainerClusterMasterAuthClientCertificateConfigOutputReference 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(): ContainerClusterMasterAuthClientCertificateConfig | undefined;
    set internalValue(value: ContainerClusterMasterAuthClientCertificateConfig | undefined);
    private _issueClientCertificate?;
    get issueClientCertificate(): boolean | cdktf.IResolvable;
    set issueClientCertificate(value: boolean | cdktf.IResolvable);
    get issueClientCertificateInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterMasterAuth {
    /**
    * client_certificate_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#client_certificate_config ContainerCluster#client_certificate_config}
    */
    readonly clientCertificateConfig: ContainerClusterMasterAuthClientCertificateConfig;
}
export declare function containerClusterMasterAuthToTerraform(struct?: ContainerClusterMasterAuthOutputReference | ContainerClusterMasterAuth): any;
export declare function containerClusterMasterAuthToHclTerraform(struct?: ContainerClusterMasterAuthOutputReference | ContainerClusterMasterAuth): any;
export declare class ContainerClusterMasterAuthOutputReference 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(): ContainerClusterMasterAuth | undefined;
    set internalValue(value: ContainerClusterMasterAuth | undefined);
    get clientCertificate(): string;
    get clientKey(): string;
    get clusterCaCertificate(): string;
    private _clientCertificateConfig;
    get clientCertificateConfig(): ContainerClusterMasterAuthClientCertificateConfigOutputReference;
    putClientCertificateConfig(value: ContainerClusterMasterAuthClientCertificateConfig): void;
    get clientCertificateConfigInput(): ContainerClusterMasterAuthClientCertificateConfig | undefined;
}
export interface ContainerClusterMasterAuthorizedNetworksConfigCidrBlocks {
    /**
    * External network that can access Kubernetes master through HTTPS. Must be specified in CIDR notation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cidr_block ContainerCluster#cidr_block}
    */
    readonly cidrBlock: string;
    /**
    * Field for users to identify CIDR blocks.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#display_name ContainerCluster#display_name}
    */
    readonly displayName?: string;
}
export declare function containerClusterMasterAuthorizedNetworksConfigCidrBlocksToTerraform(struct?: ContainerClusterMasterAuthorizedNetworksConfigCidrBlocks | cdktf.IResolvable): any;
export declare function containerClusterMasterAuthorizedNetworksConfigCidrBlocksToHclTerraform(struct?: ContainerClusterMasterAuthorizedNetworksConfigCidrBlocks | cdktf.IResolvable): any;
export declare class ContainerClusterMasterAuthorizedNetworksConfigCidrBlocksOutputReference 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(): ContainerClusterMasterAuthorizedNetworksConfigCidrBlocks | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterMasterAuthorizedNetworksConfigCidrBlocks | cdktf.IResolvable | undefined);
    private _cidrBlock?;
    get cidrBlock(): string;
    set cidrBlock(value: string);
    get cidrBlockInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
}
export declare class ContainerClusterMasterAuthorizedNetworksConfigCidrBlocksList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterMasterAuthorizedNetworksConfigCidrBlocks[] | 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): ContainerClusterMasterAuthorizedNetworksConfigCidrBlocksOutputReference;
}
export interface ContainerClusterMasterAuthorizedNetworksConfig {
    /**
    * Whether Kubernetes master is accessible via Google Compute Engine Public IPs.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gcp_public_cidrs_access_enabled ContainerCluster#gcp_public_cidrs_access_enabled}
    */
    readonly gcpPublicCidrsAccessEnabled?: boolean | cdktf.IResolvable;
    /**
    * Whether authorized networks is enforced on the private endpoint or not. Defaults to false.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#private_endpoint_enforcement_enabled ContainerCluster#private_endpoint_enforcement_enabled}
    */
    readonly privateEndpointEnforcementEnabled?: boolean | cdktf.IResolvable;
    /**
    * cidr_blocks block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cidr_blocks ContainerCluster#cidr_blocks}
    */
    readonly cidrBlocks?: ContainerClusterMasterAuthorizedNetworksConfigCidrBlocks[] | cdktf.IResolvable;
}
export declare function containerClusterMasterAuthorizedNetworksConfigToTerraform(struct?: ContainerClusterMasterAuthorizedNetworksConfigOutputReference | ContainerClusterMasterAuthorizedNetworksConfig): any;
export declare function containerClusterMasterAuthorizedNetworksConfigToHclTerraform(struct?: ContainerClusterMasterAuthorizedNetworksConfigOutputReference | ContainerClusterMasterAuthorizedNetworksConfig): any;
export declare class ContainerClusterMasterAuthorizedNetworksConfigOutputReference 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(): ContainerClusterMasterAuthorizedNetworksConfig | undefined;
    set internalValue(value: ContainerClusterMasterAuthorizedNetworksConfig | undefined);
    private _gcpPublicCidrsAccessEnabled?;
    get gcpPublicCidrsAccessEnabled(): boolean | cdktf.IResolvable;
    set gcpPublicCidrsAccessEnabled(value: boolean | cdktf.IResolvable);
    resetGcpPublicCidrsAccessEnabled(): void;
    get gcpPublicCidrsAccessEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _privateEndpointEnforcementEnabled?;
    get privateEndpointEnforcementEnabled(): boolean | cdktf.IResolvable;
    set privateEndpointEnforcementEnabled(value: boolean | cdktf.IResolvable);
    resetPrivateEndpointEnforcementEnabled(): void;
    get privateEndpointEnforcementEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _cidrBlocks;
    get cidrBlocks(): ContainerClusterMasterAuthorizedNetworksConfigCidrBlocksList;
    putCidrBlocks(value: ContainerClusterMasterAuthorizedNetworksConfigCidrBlocks[] | cdktf.IResolvable): void;
    resetCidrBlocks(): void;
    get cidrBlocksInput(): cdktf.IResolvable | ContainerClusterMasterAuthorizedNetworksConfigCidrBlocks[] | undefined;
}
export interface ContainerClusterMeshCertificates {
    /**
    * When enabled the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_certificates ContainerCluster#enable_certificates}
    */
    readonly enableCertificates: boolean | cdktf.IResolvable;
}
export declare function containerClusterMeshCertificatesToTerraform(struct?: ContainerClusterMeshCertificatesOutputReference | ContainerClusterMeshCertificates): any;
export declare function containerClusterMeshCertificatesToHclTerraform(struct?: ContainerClusterMeshCertificatesOutputReference | ContainerClusterMeshCertificates): any;
export declare class ContainerClusterMeshCertificatesOutputReference 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(): ContainerClusterMeshCertificates | undefined;
    set internalValue(value: ContainerClusterMeshCertificates | undefined);
    private _enableCertificates?;
    get enableCertificates(): boolean | cdktf.IResolvable;
    set enableCertificates(value: boolean | cdktf.IResolvable);
    get enableCertificatesInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterMonitoringConfigAdvancedDatapathObservabilityConfig {
    /**
    * Whether or not the advanced datapath metrics are enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_metrics ContainerCluster#enable_metrics}
    */
    readonly enableMetrics: boolean | cdktf.IResolvable;
    /**
    * Whether or not Relay is enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_relay ContainerCluster#enable_relay}
    */
    readonly enableRelay: boolean | cdktf.IResolvable;
}
export declare function containerClusterMonitoringConfigAdvancedDatapathObservabilityConfigToTerraform(struct?: ContainerClusterMonitoringConfigAdvancedDatapathObservabilityConfigOutputReference | ContainerClusterMonitoringConfigAdvancedDatapathObservabilityConfig): any;
export declare function containerClusterMonitoringConfigAdvancedDatapathObservabilityConfigToHclTerraform(struct?: ContainerClusterMonitoringConfigAdvancedDatapathObservabilityConfigOutputReference | ContainerClusterMonitoringConfigAdvancedDatapathObservabilityConfig): any;
export declare class ContainerClusterMonitoringConfigAdvancedDatapathObservabilityConfigOutputReference 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(): ContainerClusterMonitoringConfigAdvancedDatapathObservabilityConfig | undefined;
    set internalValue(value: ContainerClusterMonitoringConfigAdvancedDatapathObservabilityConfig | undefined);
    private _enableMetrics?;
    get enableMetrics(): boolean | cdktf.IResolvable;
    set enableMetrics(value: boolean | cdktf.IResolvable);
    get enableMetricsInput(): boolean | cdktf.IResolvable | undefined;
    private _enableRelay?;
    get enableRelay(): boolean | cdktf.IResolvable;
    set enableRelay(value: boolean | cdktf.IResolvable);
    get enableRelayInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterMonitoringConfigManagedPrometheus {
    /**
    * Whether or not the managed collection is enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterMonitoringConfigManagedPrometheusToTerraform(struct?: ContainerClusterMonitoringConfigManagedPrometheusOutputReference | ContainerClusterMonitoringConfigManagedPrometheus): any;
export declare function containerClusterMonitoringConfigManagedPrometheusToHclTerraform(struct?: ContainerClusterMonitoringConfigManagedPrometheusOutputReference | ContainerClusterMonitoringConfigManagedPrometheus): any;
export declare class ContainerClusterMonitoringConfigManagedPrometheusOutputReference 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(): ContainerClusterMonitoringConfigManagedPrometheus | undefined;
    set internalValue(value: ContainerClusterMonitoringConfigManagedPrometheus | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterMonitoringConfig {
    /**
    * GKE components exposing metrics. Valid values include SYSTEM_COMPONENTS, APISERVER, SCHEDULER, CONTROLLER_MANAGER, STORAGE, HPA, POD, DAEMONSET, DEPLOYMENT, STATEFULSET, KUBELET, CADVISOR and DCGM.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_components ContainerCluster#enable_components}
    */
    readonly enableComponents?: string[];
    /**
    * advanced_datapath_observability_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#advanced_datapath_observability_config ContainerCluster#advanced_datapath_observability_config}
    */
    readonly advancedDatapathObservabilityConfig?: ContainerClusterMonitoringConfigAdvancedDatapathObservabilityConfig;
    /**
    * managed_prometheus block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#managed_prometheus ContainerCluster#managed_prometheus}
    */
    readonly managedPrometheus?: ContainerClusterMonitoringConfigManagedPrometheus;
}
export declare function containerClusterMonitoringConfigToTerraform(struct?: ContainerClusterMonitoringConfigOutputReference | ContainerClusterMonitoringConfig): any;
export declare function containerClusterMonitoringConfigToHclTerraform(struct?: ContainerClusterMonitoringConfigOutputReference | ContainerClusterMonitoringConfig): any;
export declare class ContainerClusterMonitoringConfigOutputReference 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(): ContainerClusterMonitoringConfig | undefined;
    set internalValue(value: ContainerClusterMonitoringConfig | undefined);
    private _enableComponents?;
    get enableComponents(): string[];
    set enableComponents(value: string[]);
    resetEnableComponents(): void;
    get enableComponentsInput(): string[] | undefined;
    private _advancedDatapathObservabilityConfig;
    get advancedDatapathObservabilityConfig(): ContainerClusterMonitoringConfigAdvancedDatapathObservabilityConfigOutputReference;
    putAdvancedDatapathObservabilityConfig(value: ContainerClusterMonitoringConfigAdvancedDatapathObservabilityConfig): void;
    resetAdvancedDatapathObservabilityConfig(): void;
    get advancedDatapathObservabilityConfigInput(): ContainerClusterMonitoringConfigAdvancedDatapathObservabilityConfig | undefined;
    private _managedPrometheus;
    get managedPrometheus(): ContainerClusterMonitoringConfigManagedPrometheusOutputReference;
    putManagedPrometheus(value: ContainerClusterMonitoringConfigManagedPrometheus): void;
    resetManagedPrometheus(): void;
    get managedPrometheusInput(): ContainerClusterMonitoringConfigManagedPrometheus | undefined;
}
export interface ContainerClusterNetworkPolicy {
    /**
    * Whether network policy is enabled on the cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
    /**
    * The selected network policy provider.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#provider ContainerCluster#provider}
    */
    readonly provider?: string;
}
export declare function containerClusterNetworkPolicyToTerraform(struct?: ContainerClusterNetworkPolicyOutputReference | ContainerClusterNetworkPolicy): any;
export declare function containerClusterNetworkPolicyToHclTerraform(struct?: ContainerClusterNetworkPolicyOutputReference | ContainerClusterNetworkPolicy): any;
export declare class ContainerClusterNetworkPolicyOutputReference 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(): ContainerClusterNetworkPolicy | undefined;
    set internalValue(value: ContainerClusterNetworkPolicy | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
    private _provider?;
    get provider(): string;
    set provider(value: string);
    resetProvider(): void;
    get providerInput(): string | undefined;
}
export interface ContainerClusterNodeConfigEffectiveTaints {
}
export declare function containerClusterNodeConfigEffectiveTaintsToTerraform(struct?: ContainerClusterNodeConfigEffectiveTaints): any;
export declare function containerClusterNodeConfigEffectiveTaintsToHclTerraform(struct?: ContainerClusterNodeConfigEffectiveTaints): any;
export declare class ContainerClusterNodeConfigEffectiveTaintsOutputReference 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(): ContainerClusterNodeConfigEffectiveTaints | undefined;
    set internalValue(value: ContainerClusterNodeConfigEffectiveTaints | undefined);
    get effect(): string;
    get key(): string;
    get value(): string;
}
export declare class ContainerClusterNodeConfigEffectiveTaintsList 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): ContainerClusterNodeConfigEffectiveTaintsOutputReference;
}
export interface ContainerClusterNodeConfigAdvancedMachineFeatures {
    /**
    * Whether the node should have nested virtualization enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_nested_virtualization ContainerCluster#enable_nested_virtualization}
    */
    readonly enableNestedVirtualization?: boolean | cdktf.IResolvable;
    /**
    * The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#threads_per_core ContainerCluster#threads_per_core}
    */
    readonly threadsPerCore: number;
}
export declare function containerClusterNodeConfigAdvancedMachineFeaturesToTerraform(struct?: ContainerClusterNodeConfigAdvancedMachineFeaturesOutputReference | ContainerClusterNodeConfigAdvancedMachineFeatures): any;
export declare function containerClusterNodeConfigAdvancedMachineFeaturesToHclTerraform(struct?: ContainerClusterNodeConfigAdvancedMachineFeaturesOutputReference | ContainerClusterNodeConfigAdvancedMachineFeatures): any;
export declare class ContainerClusterNodeConfigAdvancedMachineFeaturesOutputReference 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(): ContainerClusterNodeConfigAdvancedMachineFeatures | undefined;
    set internalValue(value: ContainerClusterNodeConfigAdvancedMachineFeatures | undefined);
    private _enableNestedVirtualization?;
    get enableNestedVirtualization(): boolean | cdktf.IResolvable;
    set enableNestedVirtualization(value: boolean | cdktf.IResolvable);
    resetEnableNestedVirtualization(): void;
    get enableNestedVirtualizationInput(): boolean | cdktf.IResolvable | undefined;
    private _threadsPerCore?;
    get threadsPerCore(): number;
    set threadsPerCore(value: number);
    get threadsPerCoreInput(): number | undefined;
}
export interface ContainerClusterNodeConfigConfidentialNodes {
    /**
    * Whether Confidential Nodes feature is enabled for all nodes in this pool.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterNodeConfigConfidentialNodesToTerraform(struct?: ContainerClusterNodeConfigConfidentialNodesOutputReference | ContainerClusterNodeConfigConfidentialNodes): any;
export declare function containerClusterNodeConfigConfidentialNodesToHclTerraform(struct?: ContainerClusterNodeConfigConfidentialNodesOutputReference | ContainerClusterNodeConfigConfidentialNodes): any;
export declare class ContainerClusterNodeConfigConfidentialNodesOutputReference 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(): ContainerClusterNodeConfigConfidentialNodes | undefined;
    set internalValue(value: ContainerClusterNodeConfigConfidentialNodes | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig {
    /**
    * URI for the secret that hosts a certificate. Must be in the format 'projects/PROJECT_NUM/secrets/SECRET_NAME/versions/VERSION_OR_LATEST'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#secret_uri ContainerCluster#secret_uri}
    */
    readonly secretUri: string;
}
export declare function containerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigToTerraform(struct?: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigOutputReference | ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig): any;
export declare function containerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigToHclTerraform(struct?: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigOutputReference | ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig): any;
export declare class ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigOutputReference 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(): ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig | undefined);
    private _secretUri?;
    get secretUri(): string;
    set secretUri(value: string);
    get secretUriInput(): string | undefined;
}
export interface ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig {
    /**
    * List of fully-qualified-domain-names. IPv4s and port specification are supported.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#fqdns ContainerCluster#fqdns}
    */
    readonly fqdns: string[];
    /**
    * gcp_secret_manager_certificate_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gcp_secret_manager_certificate_config ContainerCluster#gcp_secret_manager_certificate_config}
    */
    readonly gcpSecretManagerCertificateConfig: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig;
}
export declare function containerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigToTerraform(struct?: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig | cdktf.IResolvable): any;
export declare function containerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigToHclTerraform(struct?: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig | cdktf.IResolvable): any;
export declare class ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigOutputReference 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(): ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig | cdktf.IResolvable | undefined);
    private _fqdns?;
    get fqdns(): string[];
    set fqdns(value: string[]);
    get fqdnsInput(): string[] | undefined;
    private _gcpSecretManagerCertificateConfig;
    get gcpSecretManagerCertificateConfig(): ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigOutputReference;
    putGcpSecretManagerCertificateConfig(value: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig): void;
    get gcpSecretManagerCertificateConfigInput(): ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig | undefined;
}
export declare class ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig[] | 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): ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigOutputReference;
}
export interface ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig {
    /**
    * Whether or not private registries are configured.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
    /**
    * certificate_authority_domain_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#certificate_authority_domain_config ContainerCluster#certificate_authority_domain_config}
    */
    readonly certificateAuthorityDomainConfig?: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig[] | cdktf.IResolvable;
}
export declare function containerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigToTerraform(struct?: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigOutputReference | ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig): any;
export declare function containerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigToHclTerraform(struct?: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigOutputReference | ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig): any;
export declare class ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigOutputReference 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(): ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
    private _certificateAuthorityDomainConfig;
    get certificateAuthorityDomainConfig(): ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigList;
    putCertificateAuthorityDomainConfig(value: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig[] | cdktf.IResolvable): void;
    resetCertificateAuthorityDomainConfig(): void;
    get certificateAuthorityDomainConfigInput(): cdktf.IResolvable | ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig[] | undefined;
}
export interface ContainerClusterNodeConfigContainerdConfig {
    /**
    * private_registry_access_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#private_registry_access_config ContainerCluster#private_registry_access_config}
    */
    readonly privateRegistryAccessConfig?: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig;
}
export declare function containerClusterNodeConfigContainerdConfigToTerraform(struct?: ContainerClusterNodeConfigContainerdConfigOutputReference | ContainerClusterNodeConfigContainerdConfig): any;
export declare function containerClusterNodeConfigContainerdConfigToHclTerraform(struct?: ContainerClusterNodeConfigContainerdConfigOutputReference | ContainerClusterNodeConfigContainerdConfig): any;
export declare class ContainerClusterNodeConfigContainerdConfigOutputReference 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(): ContainerClusterNodeConfigContainerdConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigContainerdConfig | undefined);
    private _privateRegistryAccessConfig;
    get privateRegistryAccessConfig(): ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigOutputReference;
    putPrivateRegistryAccessConfig(value: ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig): void;
    resetPrivateRegistryAccessConfig(): void;
    get privateRegistryAccessConfigInput(): ContainerClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig | undefined;
}
export interface ContainerClusterNodeConfigEphemeralStorageLocalSsdConfig {
    /**
    * Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD must be 375 or 3000 GB in size, and all local SSDs must share the same size.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#local_ssd_count ContainerCluster#local_ssd_count}
    */
    readonly localSsdCount: number;
}
export declare function containerClusterNodeConfigEphemeralStorageLocalSsdConfigToTerraform(struct?: ContainerClusterNodeConfigEphemeralStorageLocalSsdConfigOutputReference | ContainerClusterNodeConfigEphemeralStorageLocalSsdConfig): any;
export declare function containerClusterNodeConfigEphemeralStorageLocalSsdConfigToHclTerraform(struct?: ContainerClusterNodeConfigEphemeralStorageLocalSsdConfigOutputReference | ContainerClusterNodeConfigEphemeralStorageLocalSsdConfig): any;
export declare class ContainerClusterNodeConfigEphemeralStorageLocalSsdConfigOutputReference 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(): ContainerClusterNodeConfigEphemeralStorageLocalSsdConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigEphemeralStorageLocalSsdConfig | undefined);
    private _localSsdCount?;
    get localSsdCount(): number;
    set localSsdCount(value: number);
    get localSsdCountInput(): number | undefined;
}
export interface ContainerClusterNodeConfigFastSocket {
    /**
    * Whether or not NCCL Fast Socket is enabled
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterNodeConfigFastSocketToTerraform(struct?: ContainerClusterNodeConfigFastSocketOutputReference | ContainerClusterNodeConfigFastSocket): any;
export declare function containerClusterNodeConfigFastSocketToHclTerraform(struct?: ContainerClusterNodeConfigFastSocketOutputReference | ContainerClusterNodeConfigFastSocket): any;
export declare class ContainerClusterNodeConfigFastSocketOutputReference 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(): ContainerClusterNodeConfigFastSocket | undefined;
    set internalValue(value: ContainerClusterNodeConfigFastSocket | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterNodeConfigGcfsConfig {
    /**
    * Whether or not GCFS is enabled
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterNodeConfigGcfsConfigToTerraform(struct?: ContainerClusterNodeConfigGcfsConfigOutputReference | ContainerClusterNodeConfigGcfsConfig): any;
export declare function containerClusterNodeConfigGcfsConfigToHclTerraform(struct?: ContainerClusterNodeConfigGcfsConfigOutputReference | ContainerClusterNodeConfigGcfsConfig): any;
export declare class ContainerClusterNodeConfigGcfsConfigOutputReference 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(): ContainerClusterNodeConfigGcfsConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigGcfsConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig {
    /**
    * Mode for how the GPU driver is installed.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gpu_driver_version ContainerCluster#gpu_driver_version}
    */
    readonly gpuDriverVersion: string;
}
export declare function containerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfigToTerraform(struct?: ContainerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfigOutputReference | ContainerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig): any;
export declare function containerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfigToHclTerraform(struct?: ContainerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfigOutputReference | ContainerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig): any;
export declare class ContainerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfigOutputReference 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(): ContainerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig | undefined);
    private _gpuDriverVersion?;
    get gpuDriverVersion(): string;
    set gpuDriverVersion(value: string);
    get gpuDriverVersionInput(): string | undefined;
}
export interface ContainerClusterNodeConfigGuestAcceleratorGpuSharingConfig {
    /**
    * The type of GPU sharing strategy to enable on the GPU node. Possible values are described in the API package (https://pkg.go.dev/google.golang.org/api/container/v1#GPUSharingConfig)
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gpu_sharing_strategy ContainerCluster#gpu_sharing_strategy}
    */
    readonly gpuSharingStrategy: string;
    /**
    * The maximum number of containers that can share a GPU.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#max_shared_clients_per_gpu ContainerCluster#max_shared_clients_per_gpu}
    */
    readonly maxSharedClientsPerGpu: number;
}
export declare function containerClusterNodeConfigGuestAcceleratorGpuSharingConfigToTerraform(struct?: ContainerClusterNodeConfigGuestAcceleratorGpuSharingConfigOutputReference | ContainerClusterNodeConfigGuestAcceleratorGpuSharingConfig): any;
export declare function containerClusterNodeConfigGuestAcceleratorGpuSharingConfigToHclTerraform(struct?: ContainerClusterNodeConfigGuestAcceleratorGpuSharingConfigOutputReference | ContainerClusterNodeConfigGuestAcceleratorGpuSharingConfig): any;
export declare class ContainerClusterNodeConfigGuestAcceleratorGpuSharingConfigOutputReference 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(): ContainerClusterNodeConfigGuestAcceleratorGpuSharingConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigGuestAcceleratorGpuSharingConfig | undefined);
    private _gpuSharingStrategy?;
    get gpuSharingStrategy(): string;
    set gpuSharingStrategy(value: string);
    get gpuSharingStrategyInput(): string | undefined;
    private _maxSharedClientsPerGpu?;
    get maxSharedClientsPerGpu(): number;
    set maxSharedClientsPerGpu(value: number);
    get maxSharedClientsPerGpuInput(): number | undefined;
}
export interface ContainerClusterNodeConfigGuestAccelerator {
    /**
    * The number of the accelerator cards exposed to an instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#count ContainerCluster#count}
    */
    readonly count: number;
    /**
    * Size of partitions to create on the GPU. Valid values are described in the NVIDIA mig user guide (https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning)
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gpu_partition_size ContainerCluster#gpu_partition_size}
    */
    readonly gpuPartitionSize?: string;
    /**
    * The accelerator type resource name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#type ContainerCluster#type}
    */
    readonly type: string;
    /**
    * gpu_driver_installation_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gpu_driver_installation_config ContainerCluster#gpu_driver_installation_config}
    */
    readonly gpuDriverInstallationConfig?: ContainerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig;
    /**
    * gpu_sharing_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gpu_sharing_config ContainerCluster#gpu_sharing_config}
    */
    readonly gpuSharingConfig?: ContainerClusterNodeConfigGuestAcceleratorGpuSharingConfig;
}
export declare function containerClusterNodeConfigGuestAcceleratorToTerraform(struct?: ContainerClusterNodeConfigGuestAccelerator | cdktf.IResolvable): any;
export declare function containerClusterNodeConfigGuestAcceleratorToHclTerraform(struct?: ContainerClusterNodeConfigGuestAccelerator | cdktf.IResolvable): any;
export declare class ContainerClusterNodeConfigGuestAcceleratorOutputReference 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(): ContainerClusterNodeConfigGuestAccelerator | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterNodeConfigGuestAccelerator | cdktf.IResolvable | undefined);
    private _count?;
    get count(): number;
    set count(value: number);
    get countInput(): number | undefined;
    private _gpuPartitionSize?;
    get gpuPartitionSize(): string;
    set gpuPartitionSize(value: string);
    resetGpuPartitionSize(): void;
    get gpuPartitionSizeInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
    private _gpuDriverInstallationConfig;
    get gpuDriverInstallationConfig(): ContainerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfigOutputReference;
    putGpuDriverInstallationConfig(value: ContainerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig): void;
    resetGpuDriverInstallationConfig(): void;
    get gpuDriverInstallationConfigInput(): ContainerClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig | undefined;
    private _gpuSharingConfig;
    get gpuSharingConfig(): ContainerClusterNodeConfigGuestAcceleratorGpuSharingConfigOutputReference;
    putGpuSharingConfig(value: ContainerClusterNodeConfigGuestAcceleratorGpuSharingConfig): void;
    resetGpuSharingConfig(): void;
    get gpuSharingConfigInput(): ContainerClusterNodeConfigGuestAcceleratorGpuSharingConfig | undefined;
}
export declare class ContainerClusterNodeConfigGuestAcceleratorList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterNodeConfigGuestAccelerator[] | 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): ContainerClusterNodeConfigGuestAcceleratorOutputReference;
}
export interface ContainerClusterNodeConfigGvnic {
    /**
    * Whether or not gvnic is enabled
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterNodeConfigGvnicToTerraform(struct?: ContainerClusterNodeConfigGvnicOutputReference | ContainerClusterNodeConfigGvnic): any;
export declare function containerClusterNodeConfigGvnicToHclTerraform(struct?: ContainerClusterNodeConfigGvnicOutputReference | ContainerClusterNodeConfigGvnic): any;
export declare class ContainerClusterNodeConfigGvnicOutputReference 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(): ContainerClusterNodeConfigGvnic | undefined;
    set internalValue(value: ContainerClusterNodeConfigGvnic | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterNodeConfigHostMaintenancePolicy {
    /**
    * .
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#maintenance_interval ContainerCluster#maintenance_interval}
    */
    readonly maintenanceInterval: string;
}
export declare function containerClusterNodeConfigHostMaintenancePolicyToTerraform(struct?: ContainerClusterNodeConfigHostMaintenancePolicyOutputReference | ContainerClusterNodeConfigHostMaintenancePolicy): any;
export declare function containerClusterNodeConfigHostMaintenancePolicyToHclTerraform(struct?: ContainerClusterNodeConfigHostMaintenancePolicyOutputReference | ContainerClusterNodeConfigHostMaintenancePolicy): any;
export declare class ContainerClusterNodeConfigHostMaintenancePolicyOutputReference 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(): ContainerClusterNodeConfigHostMaintenancePolicy | undefined;
    set internalValue(value: ContainerClusterNodeConfigHostMaintenancePolicy | undefined);
    private _maintenanceInterval?;
    get maintenanceInterval(): string;
    set maintenanceInterval(value: string);
    get maintenanceIntervalInput(): string | undefined;
}
export interface ContainerClusterNodeConfigKubeletConfig {
    /**
    * Enable CPU CFS quota enforcement for containers that specify CPU limits.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cpu_cfs_quota ContainerCluster#cpu_cfs_quota}
    */
    readonly cpuCfsQuota?: boolean | cdktf.IResolvable;
    /**
    * Set the CPU CFS quota period value 'cpu.cfs_period_us'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cpu_cfs_quota_period ContainerCluster#cpu_cfs_quota_period}
    */
    readonly cpuCfsQuotaPeriod?: string;
    /**
    * Control the CPU management policy on the node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cpu_manager_policy ContainerCluster#cpu_manager_policy}
    */
    readonly cpuManagerPolicy?: string;
    /**
    * Controls whether the kubelet read-only port is enabled. It is strongly recommended to set this to `FALSE`. Possible values: `TRUE`, `FALSE`.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#insecure_kubelet_readonly_port_enabled ContainerCluster#insecure_kubelet_readonly_port_enabled}
    */
    readonly insecureKubeletReadonlyPortEnabled?: string;
    /**
    * Controls the maximum number of processes allowed to run in a pod.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#pod_pids_limit ContainerCluster#pod_pids_limit}
    */
    readonly podPidsLimit?: number;
}
export declare function containerClusterNodeConfigKubeletConfigToTerraform(struct?: ContainerClusterNodeConfigKubeletConfigOutputReference | ContainerClusterNodeConfigKubeletConfig): any;
export declare function containerClusterNodeConfigKubeletConfigToHclTerraform(struct?: ContainerClusterNodeConfigKubeletConfigOutputReference | ContainerClusterNodeConfigKubeletConfig): any;
export declare class ContainerClusterNodeConfigKubeletConfigOutputReference 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(): ContainerClusterNodeConfigKubeletConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigKubeletConfig | undefined);
    private _cpuCfsQuota?;
    get cpuCfsQuota(): boolean | cdktf.IResolvable;
    set cpuCfsQuota(value: boolean | cdktf.IResolvable);
    resetCpuCfsQuota(): void;
    get cpuCfsQuotaInput(): boolean | cdktf.IResolvable | undefined;
    private _cpuCfsQuotaPeriod?;
    get cpuCfsQuotaPeriod(): string;
    set cpuCfsQuotaPeriod(value: string);
    resetCpuCfsQuotaPeriod(): void;
    get cpuCfsQuotaPeriodInput(): string | undefined;
    private _cpuManagerPolicy?;
    get cpuManagerPolicy(): string;
    set cpuManagerPolicy(value: string);
    resetCpuManagerPolicy(): void;
    get cpuManagerPolicyInput(): string | undefined;
    private _insecureKubeletReadonlyPortEnabled?;
    get insecureKubeletReadonlyPortEnabled(): string;
    set insecureKubeletReadonlyPortEnabled(value: string);
    resetInsecureKubeletReadonlyPortEnabled(): void;
    get insecureKubeletReadonlyPortEnabledInput(): string | undefined;
    private _podPidsLimit?;
    get podPidsLimit(): number;
    set podPidsLimit(value: number);
    resetPodPidsLimit(): void;
    get podPidsLimitInput(): number | undefined;
}
export interface ContainerClusterNodeConfigLinuxNodeConfigHugepagesConfig {
    /**
    * Amount of 1G hugepages.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#hugepage_size_1g ContainerCluster#hugepage_size_1g}
    */
    readonly hugepageSize1G?: number;
    /**
    * Amount of 2M hugepages.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#hugepage_size_2m ContainerCluster#hugepage_size_2m}
    */
    readonly hugepageSize2M?: number;
}
export declare function containerClusterNodeConfigLinuxNodeConfigHugepagesConfigToTerraform(struct?: ContainerClusterNodeConfigLinuxNodeConfigHugepagesConfigOutputReference | ContainerClusterNodeConfigLinuxNodeConfigHugepagesConfig): any;
export declare function containerClusterNodeConfigLinuxNodeConfigHugepagesConfigToHclTerraform(struct?: ContainerClusterNodeConfigLinuxNodeConfigHugepagesConfigOutputReference | ContainerClusterNodeConfigLinuxNodeConfigHugepagesConfig): any;
export declare class ContainerClusterNodeConfigLinuxNodeConfigHugepagesConfigOutputReference 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(): ContainerClusterNodeConfigLinuxNodeConfigHugepagesConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigLinuxNodeConfigHugepagesConfig | undefined);
    private _hugepageSize1G?;
    get hugepageSize1G(): number;
    set hugepageSize1G(value: number);
    resetHugepageSize1G(): void;
    get hugepageSize1GInput(): number | undefined;
    private _hugepageSize2M?;
    get hugepageSize2M(): number;
    set hugepageSize2M(value: number);
    resetHugepageSize2M(): void;
    get hugepageSize2MInput(): number | undefined;
}
export interface ContainerClusterNodeConfigLinuxNodeConfig {
    /**
    * cgroupMode specifies the cgroup mode to be used on the node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cgroup_mode ContainerCluster#cgroup_mode}
    */
    readonly cgroupMode?: string;
    /**
    * The Linux kernel parameters to be applied to the nodes and all pods running on the nodes.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#sysctls ContainerCluster#sysctls}
    */
    readonly sysctls?: {
        [key: string]: string;
    };
    /**
    * hugepages_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#hugepages_config ContainerCluster#hugepages_config}
    */
    readonly hugepagesConfig?: ContainerClusterNodeConfigLinuxNodeConfigHugepagesConfig;
}
export declare function containerClusterNodeConfigLinuxNodeConfigToTerraform(struct?: ContainerClusterNodeConfigLinuxNodeConfigOutputReference | ContainerClusterNodeConfigLinuxNodeConfig): any;
export declare function containerClusterNodeConfigLinuxNodeConfigToHclTerraform(struct?: ContainerClusterNodeConfigLinuxNodeConfigOutputReference | ContainerClusterNodeConfigLinuxNodeConfig): any;
export declare class ContainerClusterNodeConfigLinuxNodeConfigOutputReference 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(): ContainerClusterNodeConfigLinuxNodeConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigLinuxNodeConfig | undefined);
    private _cgroupMode?;
    get cgroupMode(): string;
    set cgroupMode(value: string);
    resetCgroupMode(): void;
    get cgroupModeInput(): string | undefined;
    private _sysctls?;
    get sysctls(): {
        [key: string]: string;
    };
    set sysctls(value: {
        [key: string]: string;
    });
    resetSysctls(): void;
    get sysctlsInput(): {
        [key: string]: string;
    } | undefined;
    private _hugepagesConfig;
    get hugepagesConfig(): ContainerClusterNodeConfigLinuxNodeConfigHugepagesConfigOutputReference;
    putHugepagesConfig(value: ContainerClusterNodeConfigLinuxNodeConfigHugepagesConfig): void;
    resetHugepagesConfig(): void;
    get hugepagesConfigInput(): ContainerClusterNodeConfigLinuxNodeConfigHugepagesConfig | undefined;
}
export interface ContainerClusterNodeConfigLocalNvmeSsdBlockConfig {
    /**
    * Number of raw-block local NVMe SSD disks to be attached to the node. Each local SSD is 375 GB in size.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#local_ssd_count ContainerCluster#local_ssd_count}
    */
    readonly localSsdCount: number;
}
export declare function containerClusterNodeConfigLocalNvmeSsdBlockConfigToTerraform(struct?: ContainerClusterNodeConfigLocalNvmeSsdBlockConfigOutputReference | ContainerClusterNodeConfigLocalNvmeSsdBlockConfig): any;
export declare function containerClusterNodeConfigLocalNvmeSsdBlockConfigToHclTerraform(struct?: ContainerClusterNodeConfigLocalNvmeSsdBlockConfigOutputReference | ContainerClusterNodeConfigLocalNvmeSsdBlockConfig): any;
export declare class ContainerClusterNodeConfigLocalNvmeSsdBlockConfigOutputReference 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(): ContainerClusterNodeConfigLocalNvmeSsdBlockConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigLocalNvmeSsdBlockConfig | undefined);
    private _localSsdCount?;
    get localSsdCount(): number;
    set localSsdCount(value: number);
    get localSsdCountInput(): number | undefined;
}
export interface ContainerClusterNodeConfigReservationAffinity {
    /**
    * Corresponds to the type of reservation consumption.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#consume_reservation_type ContainerCluster#consume_reservation_type}
    */
    readonly consumeReservationType: string;
    /**
    * The label key of a reservation resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#key ContainerCluster#key}
    */
    readonly key?: string;
    /**
    * The label values of the reservation resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#values ContainerCluster#values}
    */
    readonly values?: string[];
}
export declare function containerClusterNodeConfigReservationAffinityToTerraform(struct?: ContainerClusterNodeConfigReservationAffinityOutputReference | ContainerClusterNodeConfigReservationAffinity): any;
export declare function containerClusterNodeConfigReservationAffinityToHclTerraform(struct?: ContainerClusterNodeConfigReservationAffinityOutputReference | ContainerClusterNodeConfigReservationAffinity): any;
export declare class ContainerClusterNodeConfigReservationAffinityOutputReference 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(): ContainerClusterNodeConfigReservationAffinity | undefined;
    set internalValue(value: ContainerClusterNodeConfigReservationAffinity | undefined);
    private _consumeReservationType?;
    get consumeReservationType(): string;
    set consumeReservationType(value: string);
    get consumeReservationTypeInput(): string | undefined;
    private _key?;
    get key(): string;
    set key(value: string);
    resetKey(): void;
    get keyInput(): string | undefined;
    private _values?;
    get values(): string[];
    set values(value: string[]);
    resetValues(): void;
    get valuesInput(): string[] | undefined;
}
export interface ContainerClusterNodeConfigSecondaryBootDisks {
    /**
    * Disk image to create the secondary boot disk from
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disk_image ContainerCluster#disk_image}
    */
    readonly diskImage: string;
    /**
    * Mode for how the secondary boot disk is used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#mode ContainerCluster#mode}
    */
    readonly mode?: string;
}
export declare function containerClusterNodeConfigSecondaryBootDisksToTerraform(struct?: ContainerClusterNodeConfigSecondaryBootDisks | cdktf.IResolvable): any;
export declare function containerClusterNodeConfigSecondaryBootDisksToHclTerraform(struct?: ContainerClusterNodeConfigSecondaryBootDisks | cdktf.IResolvable): any;
export declare class ContainerClusterNodeConfigSecondaryBootDisksOutputReference 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(): ContainerClusterNodeConfigSecondaryBootDisks | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterNodeConfigSecondaryBootDisks | cdktf.IResolvable | undefined);
    private _diskImage?;
    get diskImage(): string;
    set diskImage(value: string);
    get diskImageInput(): string | undefined;
    private _mode?;
    get mode(): string;
    set mode(value: string);
    resetMode(): void;
    get modeInput(): string | undefined;
}
export declare class ContainerClusterNodeConfigSecondaryBootDisksList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterNodeConfigSecondaryBootDisks[] | 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): ContainerClusterNodeConfigSecondaryBootDisksOutputReference;
}
export interface ContainerClusterNodeConfigShieldedInstanceConfig {
    /**
    * Defines whether the instance has integrity monitoring enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_integrity_monitoring ContainerCluster#enable_integrity_monitoring}
    */
    readonly enableIntegrityMonitoring?: boolean | cdktf.IResolvable;
    /**
    * Defines whether the instance has Secure Boot enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_secure_boot ContainerCluster#enable_secure_boot}
    */
    readonly enableSecureBoot?: boolean | cdktf.IResolvable;
}
export declare function containerClusterNodeConfigShieldedInstanceConfigToTerraform(struct?: ContainerClusterNodeConfigShieldedInstanceConfigOutputReference | ContainerClusterNodeConfigShieldedInstanceConfig): any;
export declare function containerClusterNodeConfigShieldedInstanceConfigToHclTerraform(struct?: ContainerClusterNodeConfigShieldedInstanceConfigOutputReference | ContainerClusterNodeConfigShieldedInstanceConfig): any;
export declare class ContainerClusterNodeConfigShieldedInstanceConfigOutputReference 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(): ContainerClusterNodeConfigShieldedInstanceConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigShieldedInstanceConfig | undefined);
    private _enableIntegrityMonitoring?;
    get enableIntegrityMonitoring(): boolean | cdktf.IResolvable;
    set enableIntegrityMonitoring(value: boolean | cdktf.IResolvable);
    resetEnableIntegrityMonitoring(): void;
    get enableIntegrityMonitoringInput(): boolean | cdktf.IResolvable | undefined;
    private _enableSecureBoot?;
    get enableSecureBoot(): boolean | cdktf.IResolvable;
    set enableSecureBoot(value: boolean | cdktf.IResolvable);
    resetEnableSecureBoot(): void;
    get enableSecureBootInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterNodeConfigSoleTenantConfigNodeAffinity {
    /**
    * .
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#key ContainerCluster#key}
    */
    readonly key: string;
    /**
    * .
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#operator ContainerCluster#operator}
    */
    readonly operator: string;
    /**
    * .
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#values ContainerCluster#values}
    */
    readonly values: string[];
}
export declare function containerClusterNodeConfigSoleTenantConfigNodeAffinityToTerraform(struct?: ContainerClusterNodeConfigSoleTenantConfigNodeAffinity | cdktf.IResolvable): any;
export declare function containerClusterNodeConfigSoleTenantConfigNodeAffinityToHclTerraform(struct?: ContainerClusterNodeConfigSoleTenantConfigNodeAffinity | cdktf.IResolvable): any;
export declare class ContainerClusterNodeConfigSoleTenantConfigNodeAffinityOutputReference 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(): ContainerClusterNodeConfigSoleTenantConfigNodeAffinity | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterNodeConfigSoleTenantConfigNodeAffinity | cdktf.IResolvable | undefined);
    private _key?;
    get key(): string;
    set key(value: string);
    get keyInput(): string | undefined;
    private _operator?;
    get operator(): string;
    set operator(value: string);
    get operatorInput(): string | undefined;
    private _values?;
    get values(): string[];
    set values(value: string[]);
    get valuesInput(): string[] | undefined;
}
export declare class ContainerClusterNodeConfigSoleTenantConfigNodeAffinityList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterNodeConfigSoleTenantConfigNodeAffinity[] | 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): ContainerClusterNodeConfigSoleTenantConfigNodeAffinityOutputReference;
}
export interface ContainerClusterNodeConfigSoleTenantConfig {
    /**
    * node_affinity block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#node_affinity ContainerCluster#node_affinity}
    */
    readonly nodeAffinity: ContainerClusterNodeConfigSoleTenantConfigNodeAffinity[] | cdktf.IResolvable;
}
export declare function containerClusterNodeConfigSoleTenantConfigToTerraform(struct?: ContainerClusterNodeConfigSoleTenantConfigOutputReference | ContainerClusterNodeConfigSoleTenantConfig): any;
export declare function containerClusterNodeConfigSoleTenantConfigToHclTerraform(struct?: ContainerClusterNodeConfigSoleTenantConfigOutputReference | ContainerClusterNodeConfigSoleTenantConfig): any;
export declare class ContainerClusterNodeConfigSoleTenantConfigOutputReference 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(): ContainerClusterNodeConfigSoleTenantConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigSoleTenantConfig | undefined);
    private _nodeAffinity;
    get nodeAffinity(): ContainerClusterNodeConfigSoleTenantConfigNodeAffinityList;
    putNodeAffinity(value: ContainerClusterNodeConfigSoleTenantConfigNodeAffinity[] | cdktf.IResolvable): void;
    get nodeAffinityInput(): cdktf.IResolvable | ContainerClusterNodeConfigSoleTenantConfigNodeAffinity[] | undefined;
}
export interface ContainerClusterNodeConfigTaint {
    /**
    * Effect for taint.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#effect ContainerCluster#effect}
    */
    readonly effect: string;
    /**
    * Key for taint.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#key ContainerCluster#key}
    */
    readonly key: string;
    /**
    * Value for taint.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#value ContainerCluster#value}
    */
    readonly value: string;
}
export declare function containerClusterNodeConfigTaintToTerraform(struct?: ContainerClusterNodeConfigTaint | cdktf.IResolvable): any;
export declare function containerClusterNodeConfigTaintToHclTerraform(struct?: ContainerClusterNodeConfigTaint | cdktf.IResolvable): any;
export declare class ContainerClusterNodeConfigTaintOutputReference 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(): ContainerClusterNodeConfigTaint | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterNodeConfigTaint | cdktf.IResolvable | undefined);
    private _effect?;
    get effect(): string;
    set effect(value: string);
    get effectInput(): string | undefined;
    private _key?;
    get key(): string;
    set key(value: string);
    get keyInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export declare class ContainerClusterNodeConfigTaintList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterNodeConfigTaint[] | 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): ContainerClusterNodeConfigTaintOutputReference;
}
export interface ContainerClusterNodeConfigWorkloadMetadataConfig {
    /**
    * Mode is the configuration for how to expose metadata to workloads running on the node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#mode ContainerCluster#mode}
    */
    readonly mode: string;
}
export declare function containerClusterNodeConfigWorkloadMetadataConfigToTerraform(struct?: ContainerClusterNodeConfigWorkloadMetadataConfigOutputReference | ContainerClusterNodeConfigWorkloadMetadataConfig): any;
export declare function containerClusterNodeConfigWorkloadMetadataConfigToHclTerraform(struct?: ContainerClusterNodeConfigWorkloadMetadataConfigOutputReference | ContainerClusterNodeConfigWorkloadMetadataConfig): any;
export declare class ContainerClusterNodeConfigWorkloadMetadataConfigOutputReference 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(): ContainerClusterNodeConfigWorkloadMetadataConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfigWorkloadMetadataConfig | undefined);
    private _mode?;
    get mode(): string;
    set mode(value: string);
    get modeInput(): string | undefined;
}
export interface ContainerClusterNodeConfig {
    /**
    * The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#boot_disk_kms_key ContainerCluster#boot_disk_kms_key}
    */
    readonly bootDiskKmsKey?: string;
    /**
    * Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disk_size_gb ContainerCluster#disk_size_gb}
    */
    readonly diskSizeGb?: number;
    /**
    * Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disk_type ContainerCluster#disk_type}
    */
    readonly diskType?: string;
    /**
    * If enabled boot disks are configured with confidential mode.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_confidential_storage ContainerCluster#enable_confidential_storage}
    */
    readonly enableConfidentialStorage?: boolean | cdktf.IResolvable;
    /**
    * The image type to use for this node. Note that for a given image type, the latest version of it will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#image_type ContainerCluster#image_type}
    */
    readonly imageType?: string;
    /**
    * The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#labels ContainerCluster#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The number of local SSD disks to be attached to the node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#local_ssd_count ContainerCluster#local_ssd_count}
    */
    readonly localSsdCount?: number;
    /**
    * LocalSsdEncryptionMode specified the method used for encrypting the local SSDs attached to the node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#local_ssd_encryption_mode ContainerCluster#local_ssd_encryption_mode}
    */
    readonly localSsdEncryptionMode?: string;
    /**
    * Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#logging_variant ContainerCluster#logging_variant}
    */
    readonly loggingVariant?: string;
    /**
    * The name of a Google Compute Engine machine type.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#machine_type ContainerCluster#machine_type}
    */
    readonly machineType?: string;
    /**
    * The metadata key/value pairs assigned to instances in the cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#metadata ContainerCluster#metadata}
    */
    readonly metadata?: {
        [key: string]: string;
    };
    /**
    * Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#min_cpu_platform ContainerCluster#min_cpu_platform}
    */
    readonly minCpuPlatform?: string;
    /**
    * Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#node_group ContainerCluster#node_group}
    */
    readonly nodeGroup?: string;
    /**
    * The set of Google API scopes to be made available on all of the node VMs.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#oauth_scopes ContainerCluster#oauth_scopes}
    */
    readonly oauthScopes?: string[];
    /**
    * Whether the nodes are created as preemptible VM instances.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#preemptible ContainerCluster#preemptible}
    */
    readonly preemptible?: boolean | cdktf.IResolvable;
    /**
    * The GCE resource labels (a map of key/value pairs) to be applied to the node pool.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#resource_labels ContainerCluster#resource_labels}
    */
    readonly resourceLabels?: {
        [key: string]: string;
    };
    /**
    * A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#resource_manager_tags ContainerCluster#resource_manager_tags}
    */
    readonly resourceManagerTags?: {
        [key: string]: string;
    };
    /**
    * The Google Cloud Platform Service Account to be used by the node VMs.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#service_account ContainerCluster#service_account}
    */
    readonly serviceAccount?: string;
    /**
    * Whether the nodes are created as spot VM instances.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#spot ContainerCluster#spot}
    */
    readonly spot?: boolean | cdktf.IResolvable;
    /**
    * The list of Storage Pools where boot disks are provisioned.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#storage_pools ContainerCluster#storage_pools}
    */
    readonly storagePools?: string[];
    /**
    * The list of instance tags applied to all nodes.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#tags ContainerCluster#tags}
    */
    readonly tags?: string[];
    /**
    * advanced_machine_features block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#advanced_machine_features ContainerCluster#advanced_machine_features}
    */
    readonly advancedMachineFeatures?: ContainerClusterNodeConfigAdvancedMachineFeatures;
    /**
    * confidential_nodes block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#confidential_nodes ContainerCluster#confidential_nodes}
    */
    readonly confidentialNodes?: ContainerClusterNodeConfigConfidentialNodes;
    /**
    * containerd_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#containerd_config ContainerCluster#containerd_config}
    */
    readonly containerdConfig?: ContainerClusterNodeConfigContainerdConfig;
    /**
    * ephemeral_storage_local_ssd_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#ephemeral_storage_local_ssd_config ContainerCluster#ephemeral_storage_local_ssd_config}
    */
    readonly ephemeralStorageLocalSsdConfig?: ContainerClusterNodeConfigEphemeralStorageLocalSsdConfig;
    /**
    * fast_socket block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#fast_socket ContainerCluster#fast_socket}
    */
    readonly fastSocket?: ContainerClusterNodeConfigFastSocket;
    /**
    * gcfs_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gcfs_config ContainerCluster#gcfs_config}
    */
    readonly gcfsConfig?: ContainerClusterNodeConfigGcfsConfig;
    /**
    * guest_accelerator block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#guest_accelerator ContainerCluster#guest_accelerator}
    */
    readonly guestAccelerator?: ContainerClusterNodeConfigGuestAccelerator[] | cdktf.IResolvable;
    /**
    * gvnic block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gvnic ContainerCluster#gvnic}
    */
    readonly gvnic?: ContainerClusterNodeConfigGvnic;
    /**
    * host_maintenance_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#host_maintenance_policy ContainerCluster#host_maintenance_policy}
    */
    readonly hostMaintenancePolicy?: ContainerClusterNodeConfigHostMaintenancePolicy;
    /**
    * kubelet_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#kubelet_config ContainerCluster#kubelet_config}
    */
    readonly kubeletConfig?: ContainerClusterNodeConfigKubeletConfig;
    /**
    * linux_node_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#linux_node_config ContainerCluster#linux_node_config}
    */
    readonly linuxNodeConfig?: ContainerClusterNodeConfigLinuxNodeConfig;
    /**
    * local_nvme_ssd_block_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#local_nvme_ssd_block_config ContainerCluster#local_nvme_ssd_block_config}
    */
    readonly localNvmeSsdBlockConfig?: ContainerClusterNodeConfigLocalNvmeSsdBlockConfig;
    /**
    * reservation_affinity block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#reservation_affinity ContainerCluster#reservation_affinity}
    */
    readonly reservationAffinity?: ContainerClusterNodeConfigReservationAffinity;
    /**
    * secondary_boot_disks block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#secondary_boot_disks ContainerCluster#secondary_boot_disks}
    */
    readonly secondaryBootDisks?: ContainerClusterNodeConfigSecondaryBootDisks[] | cdktf.IResolvable;
    /**
    * shielded_instance_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#shielded_instance_config ContainerCluster#shielded_instance_config}
    */
    readonly shieldedInstanceConfig?: ContainerClusterNodeConfigShieldedInstanceConfig;
    /**
    * sole_tenant_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#sole_tenant_config ContainerCluster#sole_tenant_config}
    */
    readonly soleTenantConfig?: ContainerClusterNodeConfigSoleTenantConfig;
    /**
    * taint block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#taint ContainerCluster#taint}
    */
    readonly taint?: ContainerClusterNodeConfigTaint[] | cdktf.IResolvable;
    /**
    * workload_metadata_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#workload_metadata_config ContainerCluster#workload_metadata_config}
    */
    readonly workloadMetadataConfig?: ContainerClusterNodeConfigWorkloadMetadataConfig;
}
export declare function containerClusterNodeConfigToTerraform(struct?: ContainerClusterNodeConfigOutputReference | ContainerClusterNodeConfig): any;
export declare function containerClusterNodeConfigToHclTerraform(struct?: ContainerClusterNodeConfigOutputReference | ContainerClusterNodeConfig): any;
export declare class ContainerClusterNodeConfigOutputReference 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(): ContainerClusterNodeConfig | undefined;
    set internalValue(value: ContainerClusterNodeConfig | undefined);
    private _bootDiskKmsKey?;
    get bootDiskKmsKey(): string;
    set bootDiskKmsKey(value: string);
    resetBootDiskKmsKey(): void;
    get bootDiskKmsKeyInput(): string | undefined;
    private _diskSizeGb?;
    get diskSizeGb(): number;
    set diskSizeGb(value: number);
    resetDiskSizeGb(): void;
    get diskSizeGbInput(): number | undefined;
    private _diskType?;
    get diskType(): string;
    set diskType(value: string);
    resetDiskType(): void;
    get diskTypeInput(): string | undefined;
    private _effectiveTaints;
    get effectiveTaints(): ContainerClusterNodeConfigEffectiveTaintsList;
    private _enableConfidentialStorage?;
    get enableConfidentialStorage(): boolean | cdktf.IResolvable;
    set enableConfidentialStorage(value: boolean | cdktf.IResolvable);
    resetEnableConfidentialStorage(): void;
    get enableConfidentialStorageInput(): boolean | cdktf.IResolvable | undefined;
    private _imageType?;
    get imageType(): string;
    set imageType(value: string);
    resetImageType(): void;
    get imageTypeInput(): string | undefined;
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _localSsdCount?;
    get localSsdCount(): number;
    set localSsdCount(value: number);
    resetLocalSsdCount(): void;
    get localSsdCountInput(): number | undefined;
    private _localSsdEncryptionMode?;
    get localSsdEncryptionMode(): string;
    set localSsdEncryptionMode(value: string);
    resetLocalSsdEncryptionMode(): void;
    get localSsdEncryptionModeInput(): string | undefined;
    private _loggingVariant?;
    get loggingVariant(): string;
    set loggingVariant(value: string);
    resetLoggingVariant(): void;
    get loggingVariantInput(): string | undefined;
    private _machineType?;
    get machineType(): string;
    set machineType(value: string);
    resetMachineType(): void;
    get machineTypeInput(): string | undefined;
    private _metadata?;
    get metadata(): {
        [key: string]: string;
    };
    set metadata(value: {
        [key: string]: string;
    });
    resetMetadata(): void;
    get metadataInput(): {
        [key: string]: string;
    } | undefined;
    private _minCpuPlatform?;
    get minCpuPlatform(): string;
    set minCpuPlatform(value: string);
    resetMinCpuPlatform(): void;
    get minCpuPlatformInput(): string | undefined;
    private _nodeGroup?;
    get nodeGroup(): string;
    set nodeGroup(value: string);
    resetNodeGroup(): void;
    get nodeGroupInput(): string | undefined;
    private _oauthScopes?;
    get oauthScopes(): string[];
    set oauthScopes(value: string[]);
    resetOauthScopes(): void;
    get oauthScopesInput(): string[] | undefined;
    private _preemptible?;
    get preemptible(): boolean | cdktf.IResolvable;
    set preemptible(value: boolean | cdktf.IResolvable);
    resetPreemptible(): void;
    get preemptibleInput(): boolean | cdktf.IResolvable | undefined;
    private _resourceLabels?;
    get resourceLabels(): {
        [key: string]: string;
    };
    set resourceLabels(value: {
        [key: string]: string;
    });
    resetResourceLabels(): void;
    get resourceLabelsInput(): {
        [key: string]: string;
    } | undefined;
    private _resourceManagerTags?;
    get resourceManagerTags(): {
        [key: string]: string;
    };
    set resourceManagerTags(value: {
        [key: string]: string;
    });
    resetResourceManagerTags(): void;
    get resourceManagerTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _serviceAccount?;
    get serviceAccount(): string;
    set serviceAccount(value: string);
    resetServiceAccount(): void;
    get serviceAccountInput(): string | undefined;
    private _spot?;
    get spot(): boolean | cdktf.IResolvable;
    set spot(value: boolean | cdktf.IResolvable);
    resetSpot(): void;
    get spotInput(): boolean | cdktf.IResolvable | undefined;
    private _storagePools?;
    get storagePools(): string[];
    set storagePools(value: string[]);
    resetStoragePools(): void;
    get storagePoolsInput(): string[] | undefined;
    private _tags?;
    get tags(): string[];
    set tags(value: string[]);
    resetTags(): void;
    get tagsInput(): string[] | undefined;
    private _advancedMachineFeatures;
    get advancedMachineFeatures(): ContainerClusterNodeConfigAdvancedMachineFeaturesOutputReference;
    putAdvancedMachineFeatures(value: ContainerClusterNodeConfigAdvancedMachineFeatures): void;
    resetAdvancedMachineFeatures(): void;
    get advancedMachineFeaturesInput(): ContainerClusterNodeConfigAdvancedMachineFeatures | undefined;
    private _confidentialNodes;
    get confidentialNodes(): ContainerClusterNodeConfigConfidentialNodesOutputReference;
    putConfidentialNodes(value: ContainerClusterNodeConfigConfidentialNodes): void;
    resetConfidentialNodes(): void;
    get confidentialNodesInput(): ContainerClusterNodeConfigConfidentialNodes | undefined;
    private _containerdConfig;
    get containerdConfig(): ContainerClusterNodeConfigContainerdConfigOutputReference;
    putContainerdConfig(value: ContainerClusterNodeConfigContainerdConfig): void;
    resetContainerdConfig(): void;
    get containerdConfigInput(): ContainerClusterNodeConfigContainerdConfig | undefined;
    private _ephemeralStorageLocalSsdConfig;
    get ephemeralStorageLocalSsdConfig(): ContainerClusterNodeConfigEphemeralStorageLocalSsdConfigOutputReference;
    putEphemeralStorageLocalSsdConfig(value: ContainerClusterNodeConfigEphemeralStorageLocalSsdConfig): void;
    resetEphemeralStorageLocalSsdConfig(): void;
    get ephemeralStorageLocalSsdConfigInput(): ContainerClusterNodeConfigEphemeralStorageLocalSsdConfig | undefined;
    private _fastSocket;
    get fastSocket(): ContainerClusterNodeConfigFastSocketOutputReference;
    putFastSocket(value: ContainerClusterNodeConfigFastSocket): void;
    resetFastSocket(): void;
    get fastSocketInput(): ContainerClusterNodeConfigFastSocket | undefined;
    private _gcfsConfig;
    get gcfsConfig(): ContainerClusterNodeConfigGcfsConfigOutputReference;
    putGcfsConfig(value: ContainerClusterNodeConfigGcfsConfig): void;
    resetGcfsConfig(): void;
    get gcfsConfigInput(): ContainerClusterNodeConfigGcfsConfig | undefined;
    private _guestAccelerator;
    get guestAccelerator(): ContainerClusterNodeConfigGuestAcceleratorList;
    putGuestAccelerator(value: ContainerClusterNodeConfigGuestAccelerator[] | cdktf.IResolvable): void;
    resetGuestAccelerator(): void;
    get guestAcceleratorInput(): cdktf.IResolvable | ContainerClusterNodeConfigGuestAccelerator[] | undefined;
    private _gvnic;
    get gvnic(): ContainerClusterNodeConfigGvnicOutputReference;
    putGvnic(value: ContainerClusterNodeConfigGvnic): void;
    resetGvnic(): void;
    get gvnicInput(): ContainerClusterNodeConfigGvnic | undefined;
    private _hostMaintenancePolicy;
    get hostMaintenancePolicy(): ContainerClusterNodeConfigHostMaintenancePolicyOutputReference;
    putHostMaintenancePolicy(value: ContainerClusterNodeConfigHostMaintenancePolicy): void;
    resetHostMaintenancePolicy(): void;
    get hostMaintenancePolicyInput(): ContainerClusterNodeConfigHostMaintenancePolicy | undefined;
    private _kubeletConfig;
    get kubeletConfig(): ContainerClusterNodeConfigKubeletConfigOutputReference;
    putKubeletConfig(value: ContainerClusterNodeConfigKubeletConfig): void;
    resetKubeletConfig(): void;
    get kubeletConfigInput(): ContainerClusterNodeConfigKubeletConfig | undefined;
    private _linuxNodeConfig;
    get linuxNodeConfig(): ContainerClusterNodeConfigLinuxNodeConfigOutputReference;
    putLinuxNodeConfig(value: ContainerClusterNodeConfigLinuxNodeConfig): void;
    resetLinuxNodeConfig(): void;
    get linuxNodeConfigInput(): ContainerClusterNodeConfigLinuxNodeConfig | undefined;
    private _localNvmeSsdBlockConfig;
    get localNvmeSsdBlockConfig(): ContainerClusterNodeConfigLocalNvmeSsdBlockConfigOutputReference;
    putLocalNvmeSsdBlockConfig(value: ContainerClusterNodeConfigLocalNvmeSsdBlockConfig): void;
    resetLocalNvmeSsdBlockConfig(): void;
    get localNvmeSsdBlockConfigInput(): ContainerClusterNodeConfigLocalNvmeSsdBlockConfig | undefined;
    private _reservationAffinity;
    get reservationAffinity(): ContainerClusterNodeConfigReservationAffinityOutputReference;
    putReservationAffinity(value: ContainerClusterNodeConfigReservationAffinity): void;
    resetReservationAffinity(): void;
    get reservationAffinityInput(): ContainerClusterNodeConfigReservationAffinity | undefined;
    private _secondaryBootDisks;
    get secondaryBootDisks(): ContainerClusterNodeConfigSecondaryBootDisksList;
    putSecondaryBootDisks(value: ContainerClusterNodeConfigSecondaryBootDisks[] | cdktf.IResolvable): void;
    resetSecondaryBootDisks(): void;
    get secondaryBootDisksInput(): cdktf.IResolvable | ContainerClusterNodeConfigSecondaryBootDisks[] | undefined;
    private _shieldedInstanceConfig;
    get shieldedInstanceConfig(): ContainerClusterNodeConfigShieldedInstanceConfigOutputReference;
    putShieldedInstanceConfig(value: ContainerClusterNodeConfigShieldedInstanceConfig): void;
    resetShieldedInstanceConfig(): void;
    get shieldedInstanceConfigInput(): ContainerClusterNodeConfigShieldedInstanceConfig | undefined;
    private _soleTenantConfig;
    get soleTenantConfig(): ContainerClusterNodeConfigSoleTenantConfigOutputReference;
    putSoleTenantConfig(value: ContainerClusterNodeConfigSoleTenantConfig): void;
    resetSoleTenantConfig(): void;
    get soleTenantConfigInput(): ContainerClusterNodeConfigSoleTenantConfig | undefined;
    private _taint;
    get taint(): ContainerClusterNodeConfigTaintList;
    putTaint(value: ContainerClusterNodeConfigTaint[] | cdktf.IResolvable): void;
    resetTaint(): void;
    get taintInput(): cdktf.IResolvable | ContainerClusterNodeConfigTaint[] | undefined;
    private _workloadMetadataConfig;
    get workloadMetadataConfig(): ContainerClusterNodeConfigWorkloadMetadataConfigOutputReference;
    putWorkloadMetadataConfig(value: ContainerClusterNodeConfigWorkloadMetadataConfig): void;
    resetWorkloadMetadataConfig(): void;
    get workloadMetadataConfigInput(): ContainerClusterNodeConfigWorkloadMetadataConfig | undefined;
}
export interface ContainerClusterNodePoolAutoscaling {
    /**
    * Location policy specifies the algorithm used when scaling-up the node pool. "BALANCED" - Is a best effort policy that aims to balance the sizes of available zones. "ANY" - Instructs the cluster autoscaler to prioritize utilization of unused reservations, and reduces preemption risk for Spot VMs.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#location_policy ContainerCluster#location_policy}
    */
    readonly locationPolicy?: string;
    /**
    * Maximum number of nodes per zone in the node pool. Must be >= min_node_count. Cannot be used with total limits.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#max_node_count ContainerCluster#max_node_count}
    */
    readonly maxNodeCount?: number;
    /**
    * Minimum number of nodes per zone in the node pool. Must be >=0 and <= max_node_count. Cannot be used with total limits.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#min_node_count ContainerCluster#min_node_count}
    */
    readonly minNodeCount?: number;
    /**
    * Maximum number of all nodes in the node pool. Must be >= total_min_node_count. Cannot be used with per zone limits.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#total_max_node_count ContainerCluster#total_max_node_count}
    */
    readonly totalMaxNodeCount?: number;
    /**
    * Minimum number of all nodes in the node pool. Must be >=0 and <= total_max_node_count. Cannot be used with per zone limits.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#total_min_node_count ContainerCluster#total_min_node_count}
    */
    readonly totalMinNodeCount?: number;
}
export declare function containerClusterNodePoolAutoscalingToTerraform(struct?: ContainerClusterNodePoolAutoscalingOutputReference | ContainerClusterNodePoolAutoscaling): any;
export declare function containerClusterNodePoolAutoscalingToHclTerraform(struct?: ContainerClusterNodePoolAutoscalingOutputReference | ContainerClusterNodePoolAutoscaling): any;
export declare class ContainerClusterNodePoolAutoscalingOutputReference 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(): ContainerClusterNodePoolAutoscaling | undefined;
    set internalValue(value: ContainerClusterNodePoolAutoscaling | undefined);
    private _locationPolicy?;
    get locationPolicy(): string;
    set locationPolicy(value: string);
    resetLocationPolicy(): void;
    get locationPolicyInput(): string | undefined;
    private _maxNodeCount?;
    get maxNodeCount(): number;
    set maxNodeCount(value: number);
    resetMaxNodeCount(): void;
    get maxNodeCountInput(): number | undefined;
    private _minNodeCount?;
    get minNodeCount(): number;
    set minNodeCount(value: number);
    resetMinNodeCount(): void;
    get minNodeCountInput(): number | undefined;
    private _totalMaxNodeCount?;
    get totalMaxNodeCount(): number;
    set totalMaxNodeCount(value: number);
    resetTotalMaxNodeCount(): void;
    get totalMaxNodeCountInput(): number | undefined;
    private _totalMinNodeCount?;
    get totalMinNodeCount(): number;
    set totalMinNodeCount(value: number);
    resetTotalMinNodeCount(): void;
    get totalMinNodeCountInput(): number | undefined;
}
export interface ContainerClusterNodePoolManagement {
    /**
    * Whether the nodes will be automatically repaired. Enabled by default.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#auto_repair ContainerCluster#auto_repair}
    */
    readonly autoRepair?: boolean | cdktf.IResolvable;
    /**
    * Whether the nodes will be automatically upgraded. Enabled by default.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#auto_upgrade ContainerCluster#auto_upgrade}
    */
    readonly autoUpgrade?: boolean | cdktf.IResolvable;
}
export declare function containerClusterNodePoolManagementToTerraform(struct?: ContainerClusterNodePoolManagementOutputReference | ContainerClusterNodePoolManagement): any;
export declare function containerClusterNodePoolManagementToHclTerraform(struct?: ContainerClusterNodePoolManagementOutputReference | ContainerClusterNodePoolManagement): any;
export declare class ContainerClusterNodePoolManagementOutputReference 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(): ContainerClusterNodePoolManagement | undefined;
    set internalValue(value: ContainerClusterNodePoolManagement | undefined);
    private _autoRepair?;
    get autoRepair(): boolean | cdktf.IResolvable;
    set autoRepair(value: boolean | cdktf.IResolvable);
    resetAutoRepair(): void;
    get autoRepairInput(): boolean | cdktf.IResolvable | undefined;
    private _autoUpgrade?;
    get autoUpgrade(): boolean | cdktf.IResolvable;
    set autoUpgrade(value: boolean | cdktf.IResolvable);
    resetAutoUpgrade(): void;
    get autoUpgradeInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigs {
    /**
    * Name of the VPC where the additional interface belongs.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#network ContainerCluster#network}
    */
    readonly network?: string;
    /**
    * Name of the subnetwork where the additional interface belongs.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#subnetwork ContainerCluster#subnetwork}
    */
    readonly subnetwork?: string;
}
export declare function containerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigsToTerraform(struct?: ContainerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigs | cdktf.IResolvable): any;
export declare function containerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigsToHclTerraform(struct?: ContainerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigs | cdktf.IResolvable): any;
export declare class ContainerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigsOutputReference 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(): ContainerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigs | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigs | cdktf.IResolvable | undefined);
    private _network?;
    get network(): string;
    set network(value: string);
    resetNetwork(): void;
    get networkInput(): string | undefined;
    private _subnetwork?;
    get subnetwork(): string;
    set subnetwork(value: string);
    resetSubnetwork(): void;
    get subnetworkInput(): string | undefined;
}
export declare class ContainerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigs[] | 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): ContainerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigsOutputReference;
}
export interface ContainerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigs {
    /**
    * The maximum number of pods per node which use this pod network.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#max_pods_per_node ContainerCluster#max_pods_per_node}
    */
    readonly maxPodsPerNode?: number;
    /**
    * The name of the secondary range on the subnet which provides IP address for this pod range.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#secondary_pod_range ContainerCluster#secondary_pod_range}
    */
    readonly secondaryPodRange?: string;
    /**
    * Name of the subnetwork where the additional pod network belongs.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#subnetwork ContainerCluster#subnetwork}
    */
    readonly subnetwork?: string;
}
export declare function containerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigsToTerraform(struct?: ContainerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigs | cdktf.IResolvable): any;
export declare function containerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigsToHclTerraform(struct?: ContainerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigs | cdktf.IResolvable): any;
export declare class ContainerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigsOutputReference 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(): ContainerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigs | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigs | cdktf.IResolvable | undefined);
    private _maxPodsPerNode?;
    get maxPodsPerNode(): number;
    set maxPodsPerNode(value: number);
    resetMaxPodsPerNode(): void;
    get maxPodsPerNodeInput(): number | undefined;
    private _secondaryPodRange?;
    get secondaryPodRange(): string;
    set secondaryPodRange(value: string);
    resetSecondaryPodRange(): void;
    get secondaryPodRangeInput(): string | undefined;
    private _subnetwork?;
    get subnetwork(): string;
    set subnetwork(value: string);
    resetSubnetwork(): void;
    get subnetworkInput(): string | undefined;
}
export declare class ContainerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigs[] | 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): ContainerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigsOutputReference;
}
export interface ContainerClusterNodePoolNetworkConfigNetworkPerformanceConfig {
    /**
    * Specifies the total network bandwidth tier for the NodePool.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#total_egress_bandwidth_tier ContainerCluster#total_egress_bandwidth_tier}
    */
    readonly totalEgressBandwidthTier: string;
}
export declare function containerClusterNodePoolNetworkConfigNetworkPerformanceConfigToTerraform(struct?: ContainerClusterNodePoolNetworkConfigNetworkPerformanceConfigOutputReference | ContainerClusterNodePoolNetworkConfigNetworkPerformanceConfig): any;
export declare function containerClusterNodePoolNetworkConfigNetworkPerformanceConfigToHclTerraform(struct?: ContainerClusterNodePoolNetworkConfigNetworkPerformanceConfigOutputReference | ContainerClusterNodePoolNetworkConfigNetworkPerformanceConfig): any;
export declare class ContainerClusterNodePoolNetworkConfigNetworkPerformanceConfigOutputReference 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(): ContainerClusterNodePoolNetworkConfigNetworkPerformanceConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNetworkConfigNetworkPerformanceConfig | undefined);
    private _totalEgressBandwidthTier?;
    get totalEgressBandwidthTier(): string;
    set totalEgressBandwidthTier(value: string);
    get totalEgressBandwidthTierInput(): string | undefined;
}
export interface ContainerClusterNodePoolNetworkConfigPodCidrOverprovisionConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disabled ContainerCluster#disabled}
    */
    readonly disabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterNodePoolNetworkConfigPodCidrOverprovisionConfigToTerraform(struct?: ContainerClusterNodePoolNetworkConfigPodCidrOverprovisionConfigOutputReference | ContainerClusterNodePoolNetworkConfigPodCidrOverprovisionConfig): any;
export declare function containerClusterNodePoolNetworkConfigPodCidrOverprovisionConfigToHclTerraform(struct?: ContainerClusterNodePoolNetworkConfigPodCidrOverprovisionConfigOutputReference | ContainerClusterNodePoolNetworkConfigPodCidrOverprovisionConfig): any;
export declare class ContainerClusterNodePoolNetworkConfigPodCidrOverprovisionConfigOutputReference 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(): ContainerClusterNodePoolNetworkConfigPodCidrOverprovisionConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNetworkConfigPodCidrOverprovisionConfig | undefined);
    private _disabled?;
    get disabled(): boolean | cdktf.IResolvable;
    set disabled(value: boolean | cdktf.IResolvable);
    get disabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterNodePoolNetworkConfig {
    /**
    * Whether to create a new range for pod IPs in this node pool. Defaults are provided for pod_range and pod_ipv4_cidr_block if they are not specified.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#create_pod_range ContainerCluster#create_pod_range}
    */
    readonly createPodRange?: boolean | cdktf.IResolvable;
    /**
    * Whether nodes have internal IP addresses only.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_private_nodes ContainerCluster#enable_private_nodes}
    */
    readonly enablePrivateNodes?: boolean | cdktf.IResolvable;
    /**
    * The IP address range for pod IPs in this node pool. Only applicable if create_pod_range is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) to pick a specific range to use.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#pod_ipv4_cidr_block ContainerCluster#pod_ipv4_cidr_block}
    */
    readonly podIpv4CidrBlock?: string;
    /**
    * The ID of the secondary range for pod IPs. If create_pod_range is true, this ID is used for the new range. If create_pod_range is false, uses an existing secondary range with this ID.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#pod_range ContainerCluster#pod_range}
    */
    readonly podRange?: string;
    /**
    * additional_node_network_configs block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#additional_node_network_configs ContainerCluster#additional_node_network_configs}
    */
    readonly additionalNodeNetworkConfigs?: ContainerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigs[] | cdktf.IResolvable;
    /**
    * additional_pod_network_configs block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#additional_pod_network_configs ContainerCluster#additional_pod_network_configs}
    */
    readonly additionalPodNetworkConfigs?: ContainerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigs[] | cdktf.IResolvable;
    /**
    * network_performance_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#network_performance_config ContainerCluster#network_performance_config}
    */
    readonly networkPerformanceConfig?: ContainerClusterNodePoolNetworkConfigNetworkPerformanceConfig;
    /**
    * pod_cidr_overprovision_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#pod_cidr_overprovision_config ContainerCluster#pod_cidr_overprovision_config}
    */
    readonly podCidrOverprovisionConfig?: ContainerClusterNodePoolNetworkConfigPodCidrOverprovisionConfig;
}
export declare function containerClusterNodePoolNetworkConfigToTerraform(struct?: ContainerClusterNodePoolNetworkConfigOutputReference | ContainerClusterNodePoolNetworkConfig): any;
export declare function containerClusterNodePoolNetworkConfigToHclTerraform(struct?: ContainerClusterNodePoolNetworkConfigOutputReference | ContainerClusterNodePoolNetworkConfig): any;
export declare class ContainerClusterNodePoolNetworkConfigOutputReference 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(): ContainerClusterNodePoolNetworkConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNetworkConfig | undefined);
    private _createPodRange?;
    get createPodRange(): boolean | cdktf.IResolvable;
    set createPodRange(value: boolean | cdktf.IResolvable);
    resetCreatePodRange(): void;
    get createPodRangeInput(): boolean | cdktf.IResolvable | undefined;
    private _enablePrivateNodes?;
    get enablePrivateNodes(): boolean | cdktf.IResolvable;
    set enablePrivateNodes(value: boolean | cdktf.IResolvable);
    resetEnablePrivateNodes(): void;
    get enablePrivateNodesInput(): boolean | cdktf.IResolvable | undefined;
    private _podIpv4CidrBlock?;
    get podIpv4CidrBlock(): string;
    set podIpv4CidrBlock(value: string);
    resetPodIpv4CidrBlock(): void;
    get podIpv4CidrBlockInput(): string | undefined;
    private _podRange?;
    get podRange(): string;
    set podRange(value: string);
    resetPodRange(): void;
    get podRangeInput(): string | undefined;
    private _additionalNodeNetworkConfigs;
    get additionalNodeNetworkConfigs(): ContainerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigsList;
    putAdditionalNodeNetworkConfigs(value: ContainerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigs[] | cdktf.IResolvable): void;
    resetAdditionalNodeNetworkConfigs(): void;
    get additionalNodeNetworkConfigsInput(): cdktf.IResolvable | ContainerClusterNodePoolNetworkConfigAdditionalNodeNetworkConfigs[] | undefined;
    private _additionalPodNetworkConfigs;
    get additionalPodNetworkConfigs(): ContainerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigsList;
    putAdditionalPodNetworkConfigs(value: ContainerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigs[] | cdktf.IResolvable): void;
    resetAdditionalPodNetworkConfigs(): void;
    get additionalPodNetworkConfigsInput(): cdktf.IResolvable | ContainerClusterNodePoolNetworkConfigAdditionalPodNetworkConfigs[] | undefined;
    private _networkPerformanceConfig;
    get networkPerformanceConfig(): ContainerClusterNodePoolNetworkConfigNetworkPerformanceConfigOutputReference;
    putNetworkPerformanceConfig(value: ContainerClusterNodePoolNetworkConfigNetworkPerformanceConfig): void;
    resetNetworkPerformanceConfig(): void;
    get networkPerformanceConfigInput(): ContainerClusterNodePoolNetworkConfigNetworkPerformanceConfig | undefined;
    private _podCidrOverprovisionConfig;
    get podCidrOverprovisionConfig(): ContainerClusterNodePoolNetworkConfigPodCidrOverprovisionConfigOutputReference;
    putPodCidrOverprovisionConfig(value: ContainerClusterNodePoolNetworkConfigPodCidrOverprovisionConfig): void;
    resetPodCidrOverprovisionConfig(): void;
    get podCidrOverprovisionConfigInput(): ContainerClusterNodePoolNetworkConfigPodCidrOverprovisionConfig | undefined;
}
export interface ContainerClusterNodePoolNodeConfigEffectiveTaints {
}
export declare function containerClusterNodePoolNodeConfigEffectiveTaintsToTerraform(struct?: ContainerClusterNodePoolNodeConfigEffectiveTaints): any;
export declare function containerClusterNodePoolNodeConfigEffectiveTaintsToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigEffectiveTaints): any;
export declare class ContainerClusterNodePoolNodeConfigEffectiveTaintsOutputReference 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(): ContainerClusterNodePoolNodeConfigEffectiveTaints | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigEffectiveTaints | undefined);
    get effect(): string;
    get key(): string;
    get value(): string;
}
export declare class ContainerClusterNodePoolNodeConfigEffectiveTaintsList 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): ContainerClusterNodePoolNodeConfigEffectiveTaintsOutputReference;
}
export interface ContainerClusterNodePoolNodeConfigAdvancedMachineFeatures {
    /**
    * Whether the node should have nested virtualization enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_nested_virtualization ContainerCluster#enable_nested_virtualization}
    */
    readonly enableNestedVirtualization?: boolean | cdktf.IResolvable;
    /**
    * The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#threads_per_core ContainerCluster#threads_per_core}
    */
    readonly threadsPerCore: number;
}
export declare function containerClusterNodePoolNodeConfigAdvancedMachineFeaturesToTerraform(struct?: ContainerClusterNodePoolNodeConfigAdvancedMachineFeaturesOutputReference | ContainerClusterNodePoolNodeConfigAdvancedMachineFeatures): any;
export declare function containerClusterNodePoolNodeConfigAdvancedMachineFeaturesToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigAdvancedMachineFeaturesOutputReference | ContainerClusterNodePoolNodeConfigAdvancedMachineFeatures): any;
export declare class ContainerClusterNodePoolNodeConfigAdvancedMachineFeaturesOutputReference 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(): ContainerClusterNodePoolNodeConfigAdvancedMachineFeatures | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigAdvancedMachineFeatures | undefined);
    private _enableNestedVirtualization?;
    get enableNestedVirtualization(): boolean | cdktf.IResolvable;
    set enableNestedVirtualization(value: boolean | cdktf.IResolvable);
    resetEnableNestedVirtualization(): void;
    get enableNestedVirtualizationInput(): boolean | cdktf.IResolvable | undefined;
    private _threadsPerCore?;
    get threadsPerCore(): number;
    set threadsPerCore(value: number);
    get threadsPerCoreInput(): number | undefined;
}
export interface ContainerClusterNodePoolNodeConfigConfidentialNodes {
    /**
    * Whether Confidential Nodes feature is enabled for all nodes in this pool.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterNodePoolNodeConfigConfidentialNodesToTerraform(struct?: ContainerClusterNodePoolNodeConfigConfidentialNodesOutputReference | ContainerClusterNodePoolNodeConfigConfidentialNodes): any;
export declare function containerClusterNodePoolNodeConfigConfidentialNodesToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigConfidentialNodesOutputReference | ContainerClusterNodePoolNodeConfigConfidentialNodes): any;
export declare class ContainerClusterNodePoolNodeConfigConfidentialNodesOutputReference 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(): ContainerClusterNodePoolNodeConfigConfidentialNodes | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigConfidentialNodes | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig {
    /**
    * URI for the secret that hosts a certificate. Must be in the format 'projects/PROJECT_NUM/secrets/SECRET_NAME/versions/VERSION_OR_LATEST'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#secret_uri ContainerCluster#secret_uri}
    */
    readonly secretUri: string;
}
export declare function containerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigOutputReference | ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig): any;
export declare function containerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigOutputReference | ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig): any;
export declare class ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig | undefined);
    private _secretUri?;
    get secretUri(): string;
    set secretUri(value: string);
    get secretUriInput(): string | undefined;
}
export interface ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig {
    /**
    * List of fully-qualified-domain-names. IPv4s and port specification are supported.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#fqdns ContainerCluster#fqdns}
    */
    readonly fqdns: string[];
    /**
    * gcp_secret_manager_certificate_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gcp_secret_manager_certificate_config ContainerCluster#gcp_secret_manager_certificate_config}
    */
    readonly gcpSecretManagerCertificateConfig: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig;
}
export declare function containerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig | cdktf.IResolvable): any;
export declare function containerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig | cdktf.IResolvable): any;
export declare class ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig | cdktf.IResolvable | undefined);
    private _fqdns?;
    get fqdns(): string[];
    set fqdns(value: string[]);
    get fqdnsInput(): string[] | undefined;
    private _gcpSecretManagerCertificateConfig;
    get gcpSecretManagerCertificateConfig(): ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfigOutputReference;
    putGcpSecretManagerCertificateConfig(value: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig): void;
    get gcpSecretManagerCertificateConfigInput(): ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig | undefined;
}
export declare class ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig[] | 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): ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigOutputReference;
}
export interface ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig {
    /**
    * Whether or not private registries are configured.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
    /**
    * certificate_authority_domain_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#certificate_authority_domain_config ContainerCluster#certificate_authority_domain_config}
    */
    readonly certificateAuthorityDomainConfig?: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig[] | cdktf.IResolvable;
}
export declare function containerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigOutputReference | ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig): any;
export declare function containerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigOutputReference | ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig): any;
export declare class ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
    private _certificateAuthorityDomainConfig;
    get certificateAuthorityDomainConfig(): ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigList;
    putCertificateAuthorityDomainConfig(value: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig[] | cdktf.IResolvable): void;
    resetCertificateAuthorityDomainConfig(): void;
    get certificateAuthorityDomainConfigInput(): cdktf.IResolvable | ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig[] | undefined;
}
export interface ContainerClusterNodePoolNodeConfigContainerdConfig {
    /**
    * private_registry_access_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#private_registry_access_config ContainerCluster#private_registry_access_config}
    */
    readonly privateRegistryAccessConfig?: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig;
}
export declare function containerClusterNodePoolNodeConfigContainerdConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigContainerdConfigOutputReference | ContainerClusterNodePoolNodeConfigContainerdConfig): any;
export declare function containerClusterNodePoolNodeConfigContainerdConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigContainerdConfigOutputReference | ContainerClusterNodePoolNodeConfigContainerdConfig): any;
export declare class ContainerClusterNodePoolNodeConfigContainerdConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigContainerdConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigContainerdConfig | undefined);
    private _privateRegistryAccessConfig;
    get privateRegistryAccessConfig(): ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigOutputReference;
    putPrivateRegistryAccessConfig(value: ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig): void;
    resetPrivateRegistryAccessConfig(): void;
    get privateRegistryAccessConfigInput(): ContainerClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig | undefined;
}
export interface ContainerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig {
    /**
    * Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD must be 375 or 3000 GB in size, and all local SSDs must share the same size.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#local_ssd_count ContainerCluster#local_ssd_count}
    */
    readonly localSsdCount: number;
}
export declare function containerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfigOutputReference | ContainerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig): any;
export declare function containerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfigOutputReference | ContainerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig): any;
export declare class ContainerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig | undefined);
    private _localSsdCount?;
    get localSsdCount(): number;
    set localSsdCount(value: number);
    get localSsdCountInput(): number | undefined;
}
export interface ContainerClusterNodePoolNodeConfigFastSocket {
    /**
    * Whether or not NCCL Fast Socket is enabled
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterNodePoolNodeConfigFastSocketToTerraform(struct?: ContainerClusterNodePoolNodeConfigFastSocketOutputReference | ContainerClusterNodePoolNodeConfigFastSocket): any;
export declare function containerClusterNodePoolNodeConfigFastSocketToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigFastSocketOutputReference | ContainerClusterNodePoolNodeConfigFastSocket): any;
export declare class ContainerClusterNodePoolNodeConfigFastSocketOutputReference 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(): ContainerClusterNodePoolNodeConfigFastSocket | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigFastSocket | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterNodePoolNodeConfigGcfsConfig {
    /**
    * Whether or not GCFS is enabled
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterNodePoolNodeConfigGcfsConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigGcfsConfigOutputReference | ContainerClusterNodePoolNodeConfigGcfsConfig): any;
export declare function containerClusterNodePoolNodeConfigGcfsConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigGcfsConfigOutputReference | ContainerClusterNodePoolNodeConfigGcfsConfig): any;
export declare class ContainerClusterNodePoolNodeConfigGcfsConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigGcfsConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigGcfsConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig {
    /**
    * Mode for how the GPU driver is installed.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gpu_driver_version ContainerCluster#gpu_driver_version}
    */
    readonly gpuDriverVersion: string;
}
export declare function containerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfigOutputReference | ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig): any;
export declare function containerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfigOutputReference | ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig): any;
export declare class ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig | undefined);
    private _gpuDriverVersion?;
    get gpuDriverVersion(): string;
    set gpuDriverVersion(value: string);
    get gpuDriverVersionInput(): string | undefined;
}
export interface ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig {
    /**
    * The type of GPU sharing strategy to enable on the GPU node. Possible values are described in the API package (https://pkg.go.dev/google.golang.org/api/container/v1#GPUSharingConfig)
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gpu_sharing_strategy ContainerCluster#gpu_sharing_strategy}
    */
    readonly gpuSharingStrategy: string;
    /**
    * The maximum number of containers that can share a GPU.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#max_shared_clients_per_gpu ContainerCluster#max_shared_clients_per_gpu}
    */
    readonly maxSharedClientsPerGpu: number;
}
export declare function containerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfigOutputReference | ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig): any;
export declare function containerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfigOutputReference | ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig): any;
export declare class ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig | undefined);
    private _gpuSharingStrategy?;
    get gpuSharingStrategy(): string;
    set gpuSharingStrategy(value: string);
    get gpuSharingStrategyInput(): string | undefined;
    private _maxSharedClientsPerGpu?;
    get maxSharedClientsPerGpu(): number;
    set maxSharedClientsPerGpu(value: number);
    get maxSharedClientsPerGpuInput(): number | undefined;
}
export interface ContainerClusterNodePoolNodeConfigGuestAccelerator {
    /**
    * The number of the accelerator cards exposed to an instance.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#count ContainerCluster#count}
    */
    readonly count: number;
    /**
    * Size of partitions to create on the GPU. Valid values are described in the NVIDIA mig user guide (https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning)
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gpu_partition_size ContainerCluster#gpu_partition_size}
    */
    readonly gpuPartitionSize?: string;
    /**
    * The accelerator type resource name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#type ContainerCluster#type}
    */
    readonly type: string;
    /**
    * gpu_driver_installation_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gpu_driver_installation_config ContainerCluster#gpu_driver_installation_config}
    */
    readonly gpuDriverInstallationConfig?: ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig;
    /**
    * gpu_sharing_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gpu_sharing_config ContainerCluster#gpu_sharing_config}
    */
    readonly gpuSharingConfig?: ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig;
}
export declare function containerClusterNodePoolNodeConfigGuestAcceleratorToTerraform(struct?: ContainerClusterNodePoolNodeConfigGuestAccelerator | cdktf.IResolvable): any;
export declare function containerClusterNodePoolNodeConfigGuestAcceleratorToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigGuestAccelerator | cdktf.IResolvable): any;
export declare class ContainerClusterNodePoolNodeConfigGuestAcceleratorOutputReference 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(): ContainerClusterNodePoolNodeConfigGuestAccelerator | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigGuestAccelerator | cdktf.IResolvable | undefined);
    private _count?;
    get count(): number;
    set count(value: number);
    get countInput(): number | undefined;
    private _gpuPartitionSize?;
    get gpuPartitionSize(): string;
    set gpuPartitionSize(value: string);
    resetGpuPartitionSize(): void;
    get gpuPartitionSizeInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
    private _gpuDriverInstallationConfig;
    get gpuDriverInstallationConfig(): ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfigOutputReference;
    putGpuDriverInstallationConfig(value: ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig): void;
    resetGpuDriverInstallationConfig(): void;
    get gpuDriverInstallationConfigInput(): ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig | undefined;
    private _gpuSharingConfig;
    get gpuSharingConfig(): ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfigOutputReference;
    putGpuSharingConfig(value: ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig): void;
    resetGpuSharingConfig(): void;
    get gpuSharingConfigInput(): ContainerClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig | undefined;
}
export declare class ContainerClusterNodePoolNodeConfigGuestAcceleratorList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterNodePoolNodeConfigGuestAccelerator[] | 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): ContainerClusterNodePoolNodeConfigGuestAcceleratorOutputReference;
}
export interface ContainerClusterNodePoolNodeConfigGvnic {
    /**
    * Whether or not gvnic is enabled
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterNodePoolNodeConfigGvnicToTerraform(struct?: ContainerClusterNodePoolNodeConfigGvnicOutputReference | ContainerClusterNodePoolNodeConfigGvnic): any;
export declare function containerClusterNodePoolNodeConfigGvnicToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigGvnicOutputReference | ContainerClusterNodePoolNodeConfigGvnic): any;
export declare class ContainerClusterNodePoolNodeConfigGvnicOutputReference 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(): ContainerClusterNodePoolNodeConfigGvnic | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigGvnic | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterNodePoolNodeConfigHostMaintenancePolicy {
    /**
    * .
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#maintenance_interval ContainerCluster#maintenance_interval}
    */
    readonly maintenanceInterval: string;
}
export declare function containerClusterNodePoolNodeConfigHostMaintenancePolicyToTerraform(struct?: ContainerClusterNodePoolNodeConfigHostMaintenancePolicyOutputReference | ContainerClusterNodePoolNodeConfigHostMaintenancePolicy): any;
export declare function containerClusterNodePoolNodeConfigHostMaintenancePolicyToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigHostMaintenancePolicyOutputReference | ContainerClusterNodePoolNodeConfigHostMaintenancePolicy): any;
export declare class ContainerClusterNodePoolNodeConfigHostMaintenancePolicyOutputReference 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(): ContainerClusterNodePoolNodeConfigHostMaintenancePolicy | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigHostMaintenancePolicy | undefined);
    private _maintenanceInterval?;
    get maintenanceInterval(): string;
    set maintenanceInterval(value: string);
    get maintenanceIntervalInput(): string | undefined;
}
export interface ContainerClusterNodePoolNodeConfigKubeletConfig {
    /**
    * Enable CPU CFS quota enforcement for containers that specify CPU limits.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cpu_cfs_quota ContainerCluster#cpu_cfs_quota}
    */
    readonly cpuCfsQuota?: boolean | cdktf.IResolvable;
    /**
    * Set the CPU CFS quota period value 'cpu.cfs_period_us'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cpu_cfs_quota_period ContainerCluster#cpu_cfs_quota_period}
    */
    readonly cpuCfsQuotaPeriod?: string;
    /**
    * Control the CPU management policy on the node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cpu_manager_policy ContainerCluster#cpu_manager_policy}
    */
    readonly cpuManagerPolicy?: string;
    /**
    * Controls whether the kubelet read-only port is enabled. It is strongly recommended to set this to `FALSE`. Possible values: `TRUE`, `FALSE`.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#insecure_kubelet_readonly_port_enabled ContainerCluster#insecure_kubelet_readonly_port_enabled}
    */
    readonly insecureKubeletReadonlyPortEnabled?: string;
    /**
    * Controls the maximum number of processes allowed to run in a pod.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#pod_pids_limit ContainerCluster#pod_pids_limit}
    */
    readonly podPidsLimit?: number;
}
export declare function containerClusterNodePoolNodeConfigKubeletConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigKubeletConfigOutputReference | ContainerClusterNodePoolNodeConfigKubeletConfig): any;
export declare function containerClusterNodePoolNodeConfigKubeletConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigKubeletConfigOutputReference | ContainerClusterNodePoolNodeConfigKubeletConfig): any;
export declare class ContainerClusterNodePoolNodeConfigKubeletConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigKubeletConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigKubeletConfig | undefined);
    private _cpuCfsQuota?;
    get cpuCfsQuota(): boolean | cdktf.IResolvable;
    set cpuCfsQuota(value: boolean | cdktf.IResolvable);
    resetCpuCfsQuota(): void;
    get cpuCfsQuotaInput(): boolean | cdktf.IResolvable | undefined;
    private _cpuCfsQuotaPeriod?;
    get cpuCfsQuotaPeriod(): string;
    set cpuCfsQuotaPeriod(value: string);
    resetCpuCfsQuotaPeriod(): void;
    get cpuCfsQuotaPeriodInput(): string | undefined;
    private _cpuManagerPolicy?;
    get cpuManagerPolicy(): string;
    set cpuManagerPolicy(value: string);
    resetCpuManagerPolicy(): void;
    get cpuManagerPolicyInput(): string | undefined;
    private _insecureKubeletReadonlyPortEnabled?;
    get insecureKubeletReadonlyPortEnabled(): string;
    set insecureKubeletReadonlyPortEnabled(value: string);
    resetInsecureKubeletReadonlyPortEnabled(): void;
    get insecureKubeletReadonlyPortEnabledInput(): string | undefined;
    private _podPidsLimit?;
    get podPidsLimit(): number;
    set podPidsLimit(value: number);
    resetPodPidsLimit(): void;
    get podPidsLimitInput(): number | undefined;
}
export interface ContainerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig {
    /**
    * Amount of 1G hugepages.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#hugepage_size_1g ContainerCluster#hugepage_size_1g}
    */
    readonly hugepageSize1G?: number;
    /**
    * Amount of 2M hugepages.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#hugepage_size_2m ContainerCluster#hugepage_size_2m}
    */
    readonly hugepageSize2M?: number;
}
export declare function containerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfigOutputReference | ContainerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig): any;
export declare function containerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfigOutputReference | ContainerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig): any;
export declare class ContainerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig | undefined);
    private _hugepageSize1G?;
    get hugepageSize1G(): number;
    set hugepageSize1G(value: number);
    resetHugepageSize1G(): void;
    get hugepageSize1GInput(): number | undefined;
    private _hugepageSize2M?;
    get hugepageSize2M(): number;
    set hugepageSize2M(value: number);
    resetHugepageSize2M(): void;
    get hugepageSize2MInput(): number | undefined;
}
export interface ContainerClusterNodePoolNodeConfigLinuxNodeConfig {
    /**
    * cgroupMode specifies the cgroup mode to be used on the node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cgroup_mode ContainerCluster#cgroup_mode}
    */
    readonly cgroupMode?: string;
    /**
    * The Linux kernel parameters to be applied to the nodes and all pods running on the nodes.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#sysctls ContainerCluster#sysctls}
    */
    readonly sysctls?: {
        [key: string]: string;
    };
    /**
    * hugepages_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#hugepages_config ContainerCluster#hugepages_config}
    */
    readonly hugepagesConfig?: ContainerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig;
}
export declare function containerClusterNodePoolNodeConfigLinuxNodeConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigLinuxNodeConfigOutputReference | ContainerClusterNodePoolNodeConfigLinuxNodeConfig): any;
export declare function containerClusterNodePoolNodeConfigLinuxNodeConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigLinuxNodeConfigOutputReference | ContainerClusterNodePoolNodeConfigLinuxNodeConfig): any;
export declare class ContainerClusterNodePoolNodeConfigLinuxNodeConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigLinuxNodeConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigLinuxNodeConfig | undefined);
    private _cgroupMode?;
    get cgroupMode(): string;
    set cgroupMode(value: string);
    resetCgroupMode(): void;
    get cgroupModeInput(): string | undefined;
    private _sysctls?;
    get sysctls(): {
        [key: string]: string;
    };
    set sysctls(value: {
        [key: string]: string;
    });
    resetSysctls(): void;
    get sysctlsInput(): {
        [key: string]: string;
    } | undefined;
    private _hugepagesConfig;
    get hugepagesConfig(): ContainerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfigOutputReference;
    putHugepagesConfig(value: ContainerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig): void;
    resetHugepagesConfig(): void;
    get hugepagesConfigInput(): ContainerClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig | undefined;
}
export interface ContainerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig {
    /**
    * Number of raw-block local NVMe SSD disks to be attached to the node. Each local SSD is 375 GB in size.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#local_ssd_count ContainerCluster#local_ssd_count}
    */
    readonly localSsdCount: number;
}
export declare function containerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfigOutputReference | ContainerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig): any;
export declare function containerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfigOutputReference | ContainerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig): any;
export declare class ContainerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig | undefined);
    private _localSsdCount?;
    get localSsdCount(): number;
    set localSsdCount(value: number);
    get localSsdCountInput(): number | undefined;
}
export interface ContainerClusterNodePoolNodeConfigReservationAffinity {
    /**
    * Corresponds to the type of reservation consumption.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#consume_reservation_type ContainerCluster#consume_reservation_type}
    */
    readonly consumeReservationType: string;
    /**
    * The label key of a reservation resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#key ContainerCluster#key}
    */
    readonly key?: string;
    /**
    * The label values of the reservation resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#values ContainerCluster#values}
    */
    readonly values?: string[];
}
export declare function containerClusterNodePoolNodeConfigReservationAffinityToTerraform(struct?: ContainerClusterNodePoolNodeConfigReservationAffinityOutputReference | ContainerClusterNodePoolNodeConfigReservationAffinity): any;
export declare function containerClusterNodePoolNodeConfigReservationAffinityToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigReservationAffinityOutputReference | ContainerClusterNodePoolNodeConfigReservationAffinity): any;
export declare class ContainerClusterNodePoolNodeConfigReservationAffinityOutputReference 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(): ContainerClusterNodePoolNodeConfigReservationAffinity | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigReservationAffinity | undefined);
    private _consumeReservationType?;
    get consumeReservationType(): string;
    set consumeReservationType(value: string);
    get consumeReservationTypeInput(): string | undefined;
    private _key?;
    get key(): string;
    set key(value: string);
    resetKey(): void;
    get keyInput(): string | undefined;
    private _values?;
    get values(): string[];
    set values(value: string[]);
    resetValues(): void;
    get valuesInput(): string[] | undefined;
}
export interface ContainerClusterNodePoolNodeConfigSecondaryBootDisks {
    /**
    * Disk image to create the secondary boot disk from
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disk_image ContainerCluster#disk_image}
    */
    readonly diskImage: string;
    /**
    * Mode for how the secondary boot disk is used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#mode ContainerCluster#mode}
    */
    readonly mode?: string;
}
export declare function containerClusterNodePoolNodeConfigSecondaryBootDisksToTerraform(struct?: ContainerClusterNodePoolNodeConfigSecondaryBootDisks | cdktf.IResolvable): any;
export declare function containerClusterNodePoolNodeConfigSecondaryBootDisksToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigSecondaryBootDisks | cdktf.IResolvable): any;
export declare class ContainerClusterNodePoolNodeConfigSecondaryBootDisksOutputReference 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(): ContainerClusterNodePoolNodeConfigSecondaryBootDisks | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigSecondaryBootDisks | cdktf.IResolvable | undefined);
    private _diskImage?;
    get diskImage(): string;
    set diskImage(value: string);
    get diskImageInput(): string | undefined;
    private _mode?;
    get mode(): string;
    set mode(value: string);
    resetMode(): void;
    get modeInput(): string | undefined;
}
export declare class ContainerClusterNodePoolNodeConfigSecondaryBootDisksList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterNodePoolNodeConfigSecondaryBootDisks[] | 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): ContainerClusterNodePoolNodeConfigSecondaryBootDisksOutputReference;
}
export interface ContainerClusterNodePoolNodeConfigShieldedInstanceConfig {
    /**
    * Defines whether the instance has integrity monitoring enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_integrity_monitoring ContainerCluster#enable_integrity_monitoring}
    */
    readonly enableIntegrityMonitoring?: boolean | cdktf.IResolvable;
    /**
    * Defines whether the instance has Secure Boot enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_secure_boot ContainerCluster#enable_secure_boot}
    */
    readonly enableSecureBoot?: boolean | cdktf.IResolvable;
}
export declare function containerClusterNodePoolNodeConfigShieldedInstanceConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigShieldedInstanceConfigOutputReference | ContainerClusterNodePoolNodeConfigShieldedInstanceConfig): any;
export declare function containerClusterNodePoolNodeConfigShieldedInstanceConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigShieldedInstanceConfigOutputReference | ContainerClusterNodePoolNodeConfigShieldedInstanceConfig): any;
export declare class ContainerClusterNodePoolNodeConfigShieldedInstanceConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigShieldedInstanceConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigShieldedInstanceConfig | undefined);
    private _enableIntegrityMonitoring?;
    get enableIntegrityMonitoring(): boolean | cdktf.IResolvable;
    set enableIntegrityMonitoring(value: boolean | cdktf.IResolvable);
    resetEnableIntegrityMonitoring(): void;
    get enableIntegrityMonitoringInput(): boolean | cdktf.IResolvable | undefined;
    private _enableSecureBoot?;
    get enableSecureBoot(): boolean | cdktf.IResolvable;
    set enableSecureBoot(value: boolean | cdktf.IResolvable);
    resetEnableSecureBoot(): void;
    get enableSecureBootInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity {
    /**
    * .
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#key ContainerCluster#key}
    */
    readonly key: string;
    /**
    * .
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#operator ContainerCluster#operator}
    */
    readonly operator: string;
    /**
    * .
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#values ContainerCluster#values}
    */
    readonly values: string[];
}
export declare function containerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinityToTerraform(struct?: ContainerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity | cdktf.IResolvable): any;
export declare function containerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinityToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity | cdktf.IResolvable): any;
export declare class ContainerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinityOutputReference 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(): ContainerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity | cdktf.IResolvable | undefined);
    private _key?;
    get key(): string;
    set key(value: string);
    get keyInput(): string | undefined;
    private _operator?;
    get operator(): string;
    set operator(value: string);
    get operatorInput(): string | undefined;
    private _values?;
    get values(): string[];
    set values(value: string[]);
    get valuesInput(): string[] | undefined;
}
export declare class ContainerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinityList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity[] | 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): ContainerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinityOutputReference;
}
export interface ContainerClusterNodePoolNodeConfigSoleTenantConfig {
    /**
    * node_affinity block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#node_affinity ContainerCluster#node_affinity}
    */
    readonly nodeAffinity: ContainerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity[] | cdktf.IResolvable;
}
export declare function containerClusterNodePoolNodeConfigSoleTenantConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigSoleTenantConfigOutputReference | ContainerClusterNodePoolNodeConfigSoleTenantConfig): any;
export declare function containerClusterNodePoolNodeConfigSoleTenantConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigSoleTenantConfigOutputReference | ContainerClusterNodePoolNodeConfigSoleTenantConfig): any;
export declare class ContainerClusterNodePoolNodeConfigSoleTenantConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigSoleTenantConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigSoleTenantConfig | undefined);
    private _nodeAffinity;
    get nodeAffinity(): ContainerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinityList;
    putNodeAffinity(value: ContainerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity[] | cdktf.IResolvable): void;
    get nodeAffinityInput(): cdktf.IResolvable | ContainerClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity[] | undefined;
}
export interface ContainerClusterNodePoolNodeConfigTaint {
    /**
    * Effect for taint.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#effect ContainerCluster#effect}
    */
    readonly effect: string;
    /**
    * Key for taint.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#key ContainerCluster#key}
    */
    readonly key: string;
    /**
    * Value for taint.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#value ContainerCluster#value}
    */
    readonly value: string;
}
export declare function containerClusterNodePoolNodeConfigTaintToTerraform(struct?: ContainerClusterNodePoolNodeConfigTaint | cdktf.IResolvable): any;
export declare function containerClusterNodePoolNodeConfigTaintToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigTaint | cdktf.IResolvable): any;
export declare class ContainerClusterNodePoolNodeConfigTaintOutputReference 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(): ContainerClusterNodePoolNodeConfigTaint | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigTaint | cdktf.IResolvable | undefined);
    private _effect?;
    get effect(): string;
    set effect(value: string);
    get effectInput(): string | undefined;
    private _key?;
    get key(): string;
    set key(value: string);
    get keyInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export declare class ContainerClusterNodePoolNodeConfigTaintList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterNodePoolNodeConfigTaint[] | 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): ContainerClusterNodePoolNodeConfigTaintOutputReference;
}
export interface ContainerClusterNodePoolNodeConfigWorkloadMetadataConfig {
    /**
    * Mode is the configuration for how to expose metadata to workloads running on the node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#mode ContainerCluster#mode}
    */
    readonly mode: string;
}
export declare function containerClusterNodePoolNodeConfigWorkloadMetadataConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigWorkloadMetadataConfigOutputReference | ContainerClusterNodePoolNodeConfigWorkloadMetadataConfig): any;
export declare function containerClusterNodePoolNodeConfigWorkloadMetadataConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigWorkloadMetadataConfigOutputReference | ContainerClusterNodePoolNodeConfigWorkloadMetadataConfig): any;
export declare class ContainerClusterNodePoolNodeConfigWorkloadMetadataConfigOutputReference 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(): ContainerClusterNodePoolNodeConfigWorkloadMetadataConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfigWorkloadMetadataConfig | undefined);
    private _mode?;
    get mode(): string;
    set mode(value: string);
    get modeInput(): string | undefined;
}
export interface ContainerClusterNodePoolNodeConfig {
    /**
    * The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#boot_disk_kms_key ContainerCluster#boot_disk_kms_key}
    */
    readonly bootDiskKmsKey?: string;
    /**
    * Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disk_size_gb ContainerCluster#disk_size_gb}
    */
    readonly diskSizeGb?: number;
    /**
    * Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#disk_type ContainerCluster#disk_type}
    */
    readonly diskType?: string;
    /**
    * If enabled boot disks are configured with confidential mode.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enable_confidential_storage ContainerCluster#enable_confidential_storage}
    */
    readonly enableConfidentialStorage?: boolean | cdktf.IResolvable;
    /**
    * The image type to use for this node. Note that for a given image type, the latest version of it will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#image_type ContainerCluster#image_type}
    */
    readonly imageType?: string;
    /**
    * The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#labels ContainerCluster#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The number of local SSD disks to be attached to the node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#local_ssd_count ContainerCluster#local_ssd_count}
    */
    readonly localSsdCount?: number;
    /**
    * LocalSsdEncryptionMode specified the method used for encrypting the local SSDs attached to the node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#local_ssd_encryption_mode ContainerCluster#local_ssd_encryption_mode}
    */
    readonly localSsdEncryptionMode?: string;
    /**
    * Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#logging_variant ContainerCluster#logging_variant}
    */
    readonly loggingVariant?: string;
    /**
    * The name of a Google Compute Engine machine type.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#machine_type ContainerCluster#machine_type}
    */
    readonly machineType?: string;
    /**
    * The metadata key/value pairs assigned to instances in the cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#metadata ContainerCluster#metadata}
    */
    readonly metadata?: {
        [key: string]: string;
    };
    /**
    * Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#min_cpu_platform ContainerCluster#min_cpu_platform}
    */
    readonly minCpuPlatform?: string;
    /**
    * Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#node_group ContainerCluster#node_group}
    */
    readonly nodeGroup?: string;
    /**
    * The set of Google API scopes to be made available on all of the node VMs.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#oauth_scopes ContainerCluster#oauth_scopes}
    */
    readonly oauthScopes?: string[];
    /**
    * Whether the nodes are created as preemptible VM instances.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#preemptible ContainerCluster#preemptible}
    */
    readonly preemptible?: boolean | cdktf.IResolvable;
    /**
    * The GCE resource labels (a map of key/value pairs) to be applied to the node pool.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#resource_labels ContainerCluster#resource_labels}
    */
    readonly resourceLabels?: {
        [key: string]: string;
    };
    /**
    * A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#resource_manager_tags ContainerCluster#resource_manager_tags}
    */
    readonly resourceManagerTags?: {
        [key: string]: string;
    };
    /**
    * The Google Cloud Platform Service Account to be used by the node VMs.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#service_account ContainerCluster#service_account}
    */
    readonly serviceAccount?: string;
    /**
    * Whether the nodes are created as spot VM instances.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#spot ContainerCluster#spot}
    */
    readonly spot?: boolean | cdktf.IResolvable;
    /**
    * The list of Storage Pools where boot disks are provisioned.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#storage_pools ContainerCluster#storage_pools}
    */
    readonly storagePools?: string[];
    /**
    * The list of instance tags applied to all nodes.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#tags ContainerCluster#tags}
    */
    readonly tags?: string[];
    /**
    * advanced_machine_features block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#advanced_machine_features ContainerCluster#advanced_machine_features}
    */
    readonly advancedMachineFeatures?: ContainerClusterNodePoolNodeConfigAdvancedMachineFeatures;
    /**
    * confidential_nodes block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#confidential_nodes ContainerCluster#confidential_nodes}
    */
    readonly confidentialNodes?: ContainerClusterNodePoolNodeConfigConfidentialNodes;
    /**
    * containerd_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#containerd_config ContainerCluster#containerd_config}
    */
    readonly containerdConfig?: ContainerClusterNodePoolNodeConfigContainerdConfig;
    /**
    * ephemeral_storage_local_ssd_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#ephemeral_storage_local_ssd_config ContainerCluster#ephemeral_storage_local_ssd_config}
    */
    readonly ephemeralStorageLocalSsdConfig?: ContainerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig;
    /**
    * fast_socket block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#fast_socket ContainerCluster#fast_socket}
    */
    readonly fastSocket?: ContainerClusterNodePoolNodeConfigFastSocket;
    /**
    * gcfs_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gcfs_config ContainerCluster#gcfs_config}
    */
    readonly gcfsConfig?: ContainerClusterNodePoolNodeConfigGcfsConfig;
    /**
    * guest_accelerator block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#guest_accelerator ContainerCluster#guest_accelerator}
    */
    readonly guestAccelerator?: ContainerClusterNodePoolNodeConfigGuestAccelerator[] | cdktf.IResolvable;
    /**
    * gvnic block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#gvnic ContainerCluster#gvnic}
    */
    readonly gvnic?: ContainerClusterNodePoolNodeConfigGvnic;
    /**
    * host_maintenance_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#host_maintenance_policy ContainerCluster#host_maintenance_policy}
    */
    readonly hostMaintenancePolicy?: ContainerClusterNodePoolNodeConfigHostMaintenancePolicy;
    /**
    * kubelet_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#kubelet_config ContainerCluster#kubelet_config}
    */
    readonly kubeletConfig?: ContainerClusterNodePoolNodeConfigKubeletConfig;
    /**
    * linux_node_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#linux_node_config ContainerCluster#linux_node_config}
    */
    readonly linuxNodeConfig?: ContainerClusterNodePoolNodeConfigLinuxNodeConfig;
    /**
    * local_nvme_ssd_block_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#local_nvme_ssd_block_config ContainerCluster#local_nvme_ssd_block_config}
    */
    readonly localNvmeSsdBlockConfig?: ContainerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig;
    /**
    * reservation_affinity block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#reservation_affinity ContainerCluster#reservation_affinity}
    */
    readonly reservationAffinity?: ContainerClusterNodePoolNodeConfigReservationAffinity;
    /**
    * secondary_boot_disks block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#secondary_boot_disks ContainerCluster#secondary_boot_disks}
    */
    readonly secondaryBootDisks?: ContainerClusterNodePoolNodeConfigSecondaryBootDisks[] | cdktf.IResolvable;
    /**
    * shielded_instance_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#shielded_instance_config ContainerCluster#shielded_instance_config}
    */
    readonly shieldedInstanceConfig?: ContainerClusterNodePoolNodeConfigShieldedInstanceConfig;
    /**
    * sole_tenant_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#sole_tenant_config ContainerCluster#sole_tenant_config}
    */
    readonly soleTenantConfig?: ContainerClusterNodePoolNodeConfigSoleTenantConfig;
    /**
    * taint block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#taint ContainerCluster#taint}
    */
    readonly taint?: ContainerClusterNodePoolNodeConfigTaint[] | cdktf.IResolvable;
    /**
    * workload_metadata_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#workload_metadata_config ContainerCluster#workload_metadata_config}
    */
    readonly workloadMetadataConfig?: ContainerClusterNodePoolNodeConfigWorkloadMetadataConfig;
}
export declare function containerClusterNodePoolNodeConfigToTerraform(struct?: ContainerClusterNodePoolNodeConfigOutputReference | ContainerClusterNodePoolNodeConfig): any;
export declare function containerClusterNodePoolNodeConfigToHclTerraform(struct?: ContainerClusterNodePoolNodeConfigOutputReference | ContainerClusterNodePoolNodeConfig): any;
export declare class ContainerClusterNodePoolNodeConfigOutputReference 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(): ContainerClusterNodePoolNodeConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolNodeConfig | undefined);
    private _bootDiskKmsKey?;
    get bootDiskKmsKey(): string;
    set bootDiskKmsKey(value: string);
    resetBootDiskKmsKey(): void;
    get bootDiskKmsKeyInput(): string | undefined;
    private _diskSizeGb?;
    get diskSizeGb(): number;
    set diskSizeGb(value: number);
    resetDiskSizeGb(): void;
    get diskSizeGbInput(): number | undefined;
    private _diskType?;
    get diskType(): string;
    set diskType(value: string);
    resetDiskType(): void;
    get diskTypeInput(): string | undefined;
    private _effectiveTaints;
    get effectiveTaints(): ContainerClusterNodePoolNodeConfigEffectiveTaintsList;
    private _enableConfidentialStorage?;
    get enableConfidentialStorage(): boolean | cdktf.IResolvable;
    set enableConfidentialStorage(value: boolean | cdktf.IResolvable);
    resetEnableConfidentialStorage(): void;
    get enableConfidentialStorageInput(): boolean | cdktf.IResolvable | undefined;
    private _imageType?;
    get imageType(): string;
    set imageType(value: string);
    resetImageType(): void;
    get imageTypeInput(): string | undefined;
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _localSsdCount?;
    get localSsdCount(): number;
    set localSsdCount(value: number);
    resetLocalSsdCount(): void;
    get localSsdCountInput(): number | undefined;
    private _localSsdEncryptionMode?;
    get localSsdEncryptionMode(): string;
    set localSsdEncryptionMode(value: string);
    resetLocalSsdEncryptionMode(): void;
    get localSsdEncryptionModeInput(): string | undefined;
    private _loggingVariant?;
    get loggingVariant(): string;
    set loggingVariant(value: string);
    resetLoggingVariant(): void;
    get loggingVariantInput(): string | undefined;
    private _machineType?;
    get machineType(): string;
    set machineType(value: string);
    resetMachineType(): void;
    get machineTypeInput(): string | undefined;
    private _metadata?;
    get metadata(): {
        [key: string]: string;
    };
    set metadata(value: {
        [key: string]: string;
    });
    resetMetadata(): void;
    get metadataInput(): {
        [key: string]: string;
    } | undefined;
    private _minCpuPlatform?;
    get minCpuPlatform(): string;
    set minCpuPlatform(value: string);
    resetMinCpuPlatform(): void;
    get minCpuPlatformInput(): string | undefined;
    private _nodeGroup?;
    get nodeGroup(): string;
    set nodeGroup(value: string);
    resetNodeGroup(): void;
    get nodeGroupInput(): string | undefined;
    private _oauthScopes?;
    get oauthScopes(): string[];
    set oauthScopes(value: string[]);
    resetOauthScopes(): void;
    get oauthScopesInput(): string[] | undefined;
    private _preemptible?;
    get preemptible(): boolean | cdktf.IResolvable;
    set preemptible(value: boolean | cdktf.IResolvable);
    resetPreemptible(): void;
    get preemptibleInput(): boolean | cdktf.IResolvable | undefined;
    private _resourceLabels?;
    get resourceLabels(): {
        [key: string]: string;
    };
    set resourceLabels(value: {
        [key: string]: string;
    });
    resetResourceLabels(): void;
    get resourceLabelsInput(): {
        [key: string]: string;
    } | undefined;
    private _resourceManagerTags?;
    get resourceManagerTags(): {
        [key: string]: string;
    };
    set resourceManagerTags(value: {
        [key: string]: string;
    });
    resetResourceManagerTags(): void;
    get resourceManagerTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _serviceAccount?;
    get serviceAccount(): string;
    set serviceAccount(value: string);
    resetServiceAccount(): void;
    get serviceAccountInput(): string | undefined;
    private _spot?;
    get spot(): boolean | cdktf.IResolvable;
    set spot(value: boolean | cdktf.IResolvable);
    resetSpot(): void;
    get spotInput(): boolean | cdktf.IResolvable | undefined;
    private _storagePools?;
    get storagePools(): string[];
    set storagePools(value: string[]);
    resetStoragePools(): void;
    get storagePoolsInput(): string[] | undefined;
    private _tags?;
    get tags(): string[];
    set tags(value: string[]);
    resetTags(): void;
    get tagsInput(): string[] | undefined;
    private _advancedMachineFeatures;
    get advancedMachineFeatures(): ContainerClusterNodePoolNodeConfigAdvancedMachineFeaturesOutputReference;
    putAdvancedMachineFeatures(value: ContainerClusterNodePoolNodeConfigAdvancedMachineFeatures): void;
    resetAdvancedMachineFeatures(): void;
    get advancedMachineFeaturesInput(): ContainerClusterNodePoolNodeConfigAdvancedMachineFeatures | undefined;
    private _confidentialNodes;
    get confidentialNodes(): ContainerClusterNodePoolNodeConfigConfidentialNodesOutputReference;
    putConfidentialNodes(value: ContainerClusterNodePoolNodeConfigConfidentialNodes): void;
    resetConfidentialNodes(): void;
    get confidentialNodesInput(): ContainerClusterNodePoolNodeConfigConfidentialNodes | undefined;
    private _containerdConfig;
    get containerdConfig(): ContainerClusterNodePoolNodeConfigContainerdConfigOutputReference;
    putContainerdConfig(value: ContainerClusterNodePoolNodeConfigContainerdConfig): void;
    resetContainerdConfig(): void;
    get containerdConfigInput(): ContainerClusterNodePoolNodeConfigContainerdConfig | undefined;
    private _ephemeralStorageLocalSsdConfig;
    get ephemeralStorageLocalSsdConfig(): ContainerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfigOutputReference;
    putEphemeralStorageLocalSsdConfig(value: ContainerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig): void;
    resetEphemeralStorageLocalSsdConfig(): void;
    get ephemeralStorageLocalSsdConfigInput(): ContainerClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig | undefined;
    private _fastSocket;
    get fastSocket(): ContainerClusterNodePoolNodeConfigFastSocketOutputReference;
    putFastSocket(value: ContainerClusterNodePoolNodeConfigFastSocket): void;
    resetFastSocket(): void;
    get fastSocketInput(): ContainerClusterNodePoolNodeConfigFastSocket | undefined;
    private _gcfsConfig;
    get gcfsConfig(): ContainerClusterNodePoolNodeConfigGcfsConfigOutputReference;
    putGcfsConfig(value: ContainerClusterNodePoolNodeConfigGcfsConfig): void;
    resetGcfsConfig(): void;
    get gcfsConfigInput(): ContainerClusterNodePoolNodeConfigGcfsConfig | undefined;
    private _guestAccelerator;
    get guestAccelerator(): ContainerClusterNodePoolNodeConfigGuestAcceleratorList;
    putGuestAccelerator(value: ContainerClusterNodePoolNodeConfigGuestAccelerator[] | cdktf.IResolvable): void;
    resetGuestAccelerator(): void;
    get guestAcceleratorInput(): cdktf.IResolvable | ContainerClusterNodePoolNodeConfigGuestAccelerator[] | undefined;
    private _gvnic;
    get gvnic(): ContainerClusterNodePoolNodeConfigGvnicOutputReference;
    putGvnic(value: ContainerClusterNodePoolNodeConfigGvnic): void;
    resetGvnic(): void;
    get gvnicInput(): ContainerClusterNodePoolNodeConfigGvnic | undefined;
    private _hostMaintenancePolicy;
    get hostMaintenancePolicy(): ContainerClusterNodePoolNodeConfigHostMaintenancePolicyOutputReference;
    putHostMaintenancePolicy(value: ContainerClusterNodePoolNodeConfigHostMaintenancePolicy): void;
    resetHostMaintenancePolicy(): void;
    get hostMaintenancePolicyInput(): ContainerClusterNodePoolNodeConfigHostMaintenancePolicy | undefined;
    private _kubeletConfig;
    get kubeletConfig(): ContainerClusterNodePoolNodeConfigKubeletConfigOutputReference;
    putKubeletConfig(value: ContainerClusterNodePoolNodeConfigKubeletConfig): void;
    resetKubeletConfig(): void;
    get kubeletConfigInput(): ContainerClusterNodePoolNodeConfigKubeletConfig | undefined;
    private _linuxNodeConfig;
    get linuxNodeConfig(): ContainerClusterNodePoolNodeConfigLinuxNodeConfigOutputReference;
    putLinuxNodeConfig(value: ContainerClusterNodePoolNodeConfigLinuxNodeConfig): void;
    resetLinuxNodeConfig(): void;
    get linuxNodeConfigInput(): ContainerClusterNodePoolNodeConfigLinuxNodeConfig | undefined;
    private _localNvmeSsdBlockConfig;
    get localNvmeSsdBlockConfig(): ContainerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfigOutputReference;
    putLocalNvmeSsdBlockConfig(value: ContainerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig): void;
    resetLocalNvmeSsdBlockConfig(): void;
    get localNvmeSsdBlockConfigInput(): ContainerClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig | undefined;
    private _reservationAffinity;
    get reservationAffinity(): ContainerClusterNodePoolNodeConfigReservationAffinityOutputReference;
    putReservationAffinity(value: ContainerClusterNodePoolNodeConfigReservationAffinity): void;
    resetReservationAffinity(): void;
    get reservationAffinityInput(): ContainerClusterNodePoolNodeConfigReservationAffinity | undefined;
    private _secondaryBootDisks;
    get secondaryBootDisks(): ContainerClusterNodePoolNodeConfigSecondaryBootDisksList;
    putSecondaryBootDisks(value: ContainerClusterNodePoolNodeConfigSecondaryBootDisks[] | cdktf.IResolvable): void;
    resetSecondaryBootDisks(): void;
    get secondaryBootDisksInput(): cdktf.IResolvable | ContainerClusterNodePoolNodeConfigSecondaryBootDisks[] | undefined;
    private _shieldedInstanceConfig;
    get shieldedInstanceConfig(): ContainerClusterNodePoolNodeConfigShieldedInstanceConfigOutputReference;
    putShieldedInstanceConfig(value: ContainerClusterNodePoolNodeConfigShieldedInstanceConfig): void;
    resetShieldedInstanceConfig(): void;
    get shieldedInstanceConfigInput(): ContainerClusterNodePoolNodeConfigShieldedInstanceConfig | undefined;
    private _soleTenantConfig;
    get soleTenantConfig(): ContainerClusterNodePoolNodeConfigSoleTenantConfigOutputReference;
    putSoleTenantConfig(value: ContainerClusterNodePoolNodeConfigSoleTenantConfig): void;
    resetSoleTenantConfig(): void;
    get soleTenantConfigInput(): ContainerClusterNodePoolNodeConfigSoleTenantConfig | undefined;
    private _taint;
    get taint(): ContainerClusterNodePoolNodeConfigTaintList;
    putTaint(value: ContainerClusterNodePoolNodeConfigTaint[] | cdktf.IResolvable): void;
    resetTaint(): void;
    get taintInput(): cdktf.IResolvable | ContainerClusterNodePoolNodeConfigTaint[] | undefined;
    private _workloadMetadataConfig;
    get workloadMetadataConfig(): ContainerClusterNodePoolNodeConfigWorkloadMetadataConfigOutputReference;
    putWorkloadMetadataConfig(value: ContainerClusterNodePoolNodeConfigWorkloadMetadataConfig): void;
    resetWorkloadMetadataConfig(): void;
    get workloadMetadataConfigInput(): ContainerClusterNodePoolNodeConfigWorkloadMetadataConfig | undefined;
}
export interface ContainerClusterNodePoolPlacementPolicy {
    /**
    * If set, refers to the name of a custom resource policy supplied by the user. The resource policy must be in the same project and region as the node pool. If not found, InvalidArgument error is returned.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#policy_name ContainerCluster#policy_name}
    */
    readonly policyName?: string;
    /**
    * TPU placement topology for pod slice node pool. https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#tpu_topology ContainerCluster#tpu_topology}
    */
    readonly tpuTopology?: string;
    /**
    * Type defines the type of placement policy
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#type ContainerCluster#type}
    */
    readonly type: string;
}
export declare function containerClusterNodePoolPlacementPolicyToTerraform(struct?: ContainerClusterNodePoolPlacementPolicyOutputReference | ContainerClusterNodePoolPlacementPolicy): any;
export declare function containerClusterNodePoolPlacementPolicyToHclTerraform(struct?: ContainerClusterNodePoolPlacementPolicyOutputReference | ContainerClusterNodePoolPlacementPolicy): any;
export declare class ContainerClusterNodePoolPlacementPolicyOutputReference 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(): ContainerClusterNodePoolPlacementPolicy | undefined;
    set internalValue(value: ContainerClusterNodePoolPlacementPolicy | undefined);
    private _policyName?;
    get policyName(): string;
    set policyName(value: string);
    resetPolicyName(): void;
    get policyNameInput(): string | undefined;
    private _tpuTopology?;
    get tpuTopology(): string;
    set tpuTopology(value: string);
    resetTpuTopology(): void;
    get tpuTopologyInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
}
export interface ContainerClusterNodePoolQueuedProvisioning {
    /**
    * Whether nodes in this node pool are obtainable solely through the ProvisioningRequest API
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#enabled ContainerCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function containerClusterNodePoolQueuedProvisioningToTerraform(struct?: ContainerClusterNodePoolQueuedProvisioningOutputReference | ContainerClusterNodePoolQueuedProvisioning): any;
export declare function containerClusterNodePoolQueuedProvisioningToHclTerraform(struct?: ContainerClusterNodePoolQueuedProvisioningOutputReference | ContainerClusterNodePoolQueuedProvisioning): any;
export declare class ContainerClusterNodePoolQueuedProvisioningOutputReference 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(): ContainerClusterNodePoolQueuedProvisioning | undefined;
    set internalValue(value: ContainerClusterNodePoolQueuedProvisioning | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy {
    /**
    * Number of blue nodes to drain in a batch.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#batch_node_count ContainerCluster#batch_node_count}
    */
    readonly batchNodeCount?: number;
    /**
    * Percentage of the blue pool nodes to drain in a batch.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#batch_percentage ContainerCluster#batch_percentage}
    */
    readonly batchPercentage?: number;
    /**
    * Soak time after each batch gets drained.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#batch_soak_duration ContainerCluster#batch_soak_duration}
    */
    readonly batchSoakDuration?: string;
}
export declare function containerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyToTerraform(struct?: ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyOutputReference | ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy): any;
export declare function containerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyToHclTerraform(struct?: ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyOutputReference | ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy): any;
export declare class ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyOutputReference 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(): ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy | undefined;
    set internalValue(value: ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy | undefined);
    private _batchNodeCount?;
    get batchNodeCount(): number;
    set batchNodeCount(value: number);
    resetBatchNodeCount(): void;
    get batchNodeCountInput(): number | undefined;
    private _batchPercentage?;
    get batchPercentage(): number;
    set batchPercentage(value: number);
    resetBatchPercentage(): void;
    get batchPercentageInput(): number | undefined;
    private _batchSoakDuration?;
    get batchSoakDuration(): string;
    set batchSoakDuration(value: string);
    resetBatchSoakDuration(): void;
    get batchSoakDurationInput(): string | undefined;
}
export interface ContainerClusterNodePoolUpgradeSettingsBlueGreenSettings {
    /**
    * Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#node_pool_soak_duration ContainerCluster#node_pool_soak_duration}
    */
    readonly nodePoolSoakDuration?: string;
    /**
    * standard_rollout_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#standard_rollout_policy ContainerCluster#standard_rollout_policy}
    */
    readonly standardRolloutPolicy: ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy;
}
export declare function containerClusterNodePoolUpgradeSettingsBlueGreenSettingsToTerraform(struct?: ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsOutputReference | ContainerClusterNodePoolUpgradeSettingsBlueGreenSettings): any;
export declare function containerClusterNodePoolUpgradeSettingsBlueGreenSettingsToHclTerraform(struct?: ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsOutputReference | ContainerClusterNodePoolUpgradeSettingsBlueGreenSettings): any;
export declare class ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsOutputReference 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(): ContainerClusterNodePoolUpgradeSettingsBlueGreenSettings | undefined;
    set internalValue(value: ContainerClusterNodePoolUpgradeSettingsBlueGreenSettings | undefined);
    private _nodePoolSoakDuration?;
    get nodePoolSoakDuration(): string;
    set nodePoolSoakDuration(value: string);
    resetNodePoolSoakDuration(): void;
    get nodePoolSoakDurationInput(): string | undefined;
    private _standardRolloutPolicy;
    get standardRolloutPolicy(): ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicyOutputReference;
    putStandardRolloutPolicy(value: ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy): void;
    get standardRolloutPolicyInput(): ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy | undefined;
}
export interface ContainerClusterNodePoolUpgradeSettings {
    /**
    * The number of additional nodes that can be added to the node pool during an upgrade. Increasing max_surge raises the number of nodes that can be upgraded simultaneously. Can be set to 0 or greater.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#max_surge ContainerCluster#max_surge}
    */
    readonly maxSurge?: number;
    /**
    * The number of nodes that can be simultaneously unavailable during an upgrade. Increasing max_unavailable raises the number of nodes that can be upgraded in parallel. Can be set to 0 or greater.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#max_unavailable ContainerCluster#max_unavailable}
    */
    readonly maxUnavailable?: number;
    /**
    * Update strategy for the given nodepool.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#strategy ContainerCluster#strategy}
    */
    readonly strategy?: string;
    /**
    * blue_green_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#blue_green_settings ContainerCluster#blue_green_settings}
    */
    readonly blueGreenSettings?: ContainerClusterNodePoolUpgradeSettingsBlueGreenSettings;
}
export declare function containerClusterNodePoolUpgradeSettingsToTerraform(struct?: ContainerClusterNodePoolUpgradeSettingsOutputReference | ContainerClusterNodePoolUpgradeSettings): any;
export declare function containerClusterNodePoolUpgradeSettingsToHclTerraform(struct?: ContainerClusterNodePoolUpgradeSettingsOutputReference | ContainerClusterNodePoolUpgradeSettings): any;
export declare class ContainerClusterNodePoolUpgradeSettingsOutputReference 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(): ContainerClusterNodePoolUpgradeSettings | undefined;
    set internalValue(value: ContainerClusterNodePoolUpgradeSettings | undefined);
    private _maxSurge?;
    get maxSurge(): number;
    set maxSurge(value: number);
    resetMaxSurge(): void;
    get maxSurgeInput(): number | undefined;
    private _maxUnavailable?;
    get maxUnavailable(): number;
    set maxUnavailable(value: number);
    resetMaxUnavailable(): void;
    get maxUnavailableInput(): number | undefined;
    private _strategy?;
    get strategy(): string;
    set strategy(value: string);
    resetStrategy(): void;
    get strategyInput(): string | undefined;
    private _blueGreenSettings;
    get blueGreenSettings(): ContainerClusterNodePoolUpgradeSettingsBlueGreenSettingsOutputReference;
    putBlueGreenSettings(value: ContainerClusterNodePoolUpgradeSettingsBlueGreenSettings): void;
    resetBlueGreenSettings(): void;
    get blueGreenSettingsInput(): ContainerClusterNodePoolUpgradeSettingsBlueGreenSettings | undefined;
}
export interface ContainerClusterNodePool {
    /**
    * The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#initial_node_count ContainerCluster#initial_node_count}
    */
    readonly initialNodeCount?: number;
    /**
    * The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#max_pods_per_node ContainerCluster#max_pods_per_node}
    */
    readonly maxPodsPerNode?: number;
    /**
    * The name of the node pool. If left blank, Terraform will auto-generate a unique name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#name ContainerCluster#name}
    */
    readonly name?: string;
    /**
    * Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#name_prefix ContainerCluster#name_prefix}
    */
    readonly namePrefix?: string;
    /**
    * The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#node_count ContainerCluster#node_count}
    */
    readonly nodeCount?: number;
    /**
    * The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#node_locations ContainerCluster#node_locations}
    */
    readonly nodeLocations?: string[];
    /**
    * The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as Terraform will see spurious diffs when fuzzy versions are used. See the google_container_engine_versions data source's version_prefix field to approximate fuzzy versions in a Terraform-compatible way.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#version ContainerCluster#version}
    */
    readonly version?: string;
    /**
    * autoscaling block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#autoscaling ContainerCluster#autoscaling}
    */
    readonly autoscaling?: ContainerClusterNodePoolAutoscaling;
    /**
    * management block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#management ContainerCluster#management}
    */
    readonly management?: ContainerClusterNodePoolManagement;
    /**
    * network_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#network_config ContainerCluster#network_config}
    */
    readonly networkConfig?: ContainerClusterNodePoolNetworkConfig;
    /**
    * node_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#node_config ContainerCluster#node_config}
    */
    readonly nodeConfig?: ContainerClusterNodePoolNodeConfig;
    /**
    * placement_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#placement_policy ContainerCluster#placement_policy}
    */
    readonly placementPolicy?: ContainerClusterNodePoolPlacementPolicy;
    /**
    * queued_provisioning block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#queued_provisioning ContainerCluster#queued_provisioning}
    */
    readonly queuedProvisioning?: ContainerClusterNodePoolQueuedProvisioning;
    /**
    * upgrade_settings block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#upgrade_settings ContainerCluster#upgrade_settings}
    */
    readonly upgradeSettings?: ContainerClusterNodePoolUpgradeSettings;
}
export declare function containerClusterNodePoolToTerraform(struct?: ContainerClusterNodePool | cdktf.IResolvable): any;
export declare function containerClusterNodePoolToHclTerraform(struct?: ContainerClusterNodePool | cdktf.IResolvable): any;
export declare class ContainerClusterNodePoolOutputReference 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(): ContainerClusterNodePool | cdktf.IResolvable | undefined;
    set internalValue(value: ContainerClusterNodePool | cdktf.IResolvable | undefined);
    private _initialNodeCount?;
    get initialNodeCount(): number;
    set initialNodeCount(value: number);
    resetInitialNodeCount(): void;
    get initialNodeCountInput(): number | undefined;
    get instanceGroupUrls(): string[];
    get managedInstanceGroupUrls(): string[];
    private _maxPodsPerNode?;
    get maxPodsPerNode(): number;
    set maxPodsPerNode(value: number);
    resetMaxPodsPerNode(): void;
    get maxPodsPerNodeInput(): number | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _namePrefix?;
    get namePrefix(): string;
    set namePrefix(value: string);
    resetNamePrefix(): void;
    get namePrefixInput(): string | undefined;
    private _nodeCount?;
    get nodeCount(): number;
    set nodeCount(value: number);
    resetNodeCount(): void;
    get nodeCountInput(): number | undefined;
    private _nodeLocations?;
    get nodeLocations(): string[];
    set nodeLocations(value: string[]);
    resetNodeLocations(): void;
    get nodeLocationsInput(): string[] | undefined;
    private _version?;
    get version(): string;
    set version(value: string);
    resetVersion(): void;
    get versionInput(): string | undefined;
    private _autoscaling;
    get autoscaling(): ContainerClusterNodePoolAutoscalingOutputReference;
    putAutoscaling(value: ContainerClusterNodePoolAutoscaling): void;
    resetAutoscaling(): void;
    get autoscalingInput(): ContainerClusterNodePoolAutoscaling | undefined;
    private _management;
    get management(): ContainerClusterNodePoolManagementOutputReference;
    putManagement(value: ContainerClusterNodePoolManagement): void;
    resetManagement(): void;
    get managementInput(): ContainerClusterNodePoolManagement | undefined;
    private _networkConfig;
    get networkConfig(): ContainerClusterNodePoolNetworkConfigOutputReference;
    putNetworkConfig(value: ContainerClusterNodePoolNetworkConfig): void;
    resetNetworkConfig(): void;
    get networkConfigInput(): ContainerClusterNodePoolNetworkConfig | undefined;
    private _nodeConfig;
    get nodeConfig(): ContainerClusterNodePoolNodeConfigOutputReference;
    putNodeConfig(value: ContainerClusterNodePoolNodeConfig): void;
    resetNodeConfig(): void;
    get nodeConfigInput(): ContainerClusterNodePoolNodeConfig | undefined;
    private _placementPolicy;
    get placementPolicy(): ContainerClusterNodePoolPlacementPolicyOutputReference;
    putPlacementPolicy(value: ContainerClusterNodePoolPlacementPolicy): void;
    resetPlacementPolicy(): void;
    get placementPolicyInput(): ContainerClusterNodePoolPlacementPolicy | undefined;
    private _queuedProvisioning;
    get queuedProvisioning(): ContainerClusterNodePoolQueuedProvisioningOutputReference;
    putQueuedProvisioning(value: ContainerClusterNodePoolQueuedProvisioning): void;
    resetQueuedProvisioning(): void;
    get queuedProvisioningInput(): ContainerClusterNodePoolQueuedProvisioning | undefined;
    private _upgradeSettings;
    get upgradeSettings(): ContainerClusterNodePoolUpgradeSettingsOutputReference;
    putUpgradeSettings(value: ContainerClusterNodePoolUpgradeSettings): void;
    resetUpgradeSettings(): void;
    get upgradeSettingsInput(): ContainerClusterNodePoolUpgradeSettings | undefined;
}
export declare class ContainerClusterNodePoolList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: ContainerClusterNodePool[] | 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): ContainerClusterNodePoolOutputReference;
}
export interface ContainerClusterNodePoolAutoConfigLinuxNodeConfig {
    /**
    * cgroupMode specifies the cgroup mode to be used on the node.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#cgroup_mode ContainerCluster#cgroup_mode}
    */
    readonly cgroupMode?: string;
}
export declare function containerClusterNodePoolAutoConfigLinuxNodeConfigToTerraform(struct?: ContainerClusterNodePoolAutoConfigLinuxNodeConfigOutputReference | ContainerClusterNodePoolAutoConfigLinuxNodeConfig): any;
export declare function containerClusterNodePoolAutoConfigLinuxNodeConfigToHclTerraform(struct?: ContainerClusterNodePoolAutoConfigLinuxNodeConfigOutputReference | ContainerClusterNodePoolAutoConfigLinuxNodeConfig): any;
export declare class ContainerClusterNodePoolAutoConfigLinuxNodeConfigOutputReference 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(): ContainerClusterNodePoolAutoConfigLinuxNodeConfig | undefined;
    set internalValue(value: ContainerClusterNodePoolAutoConfigLinuxNodeConfig | undefined);
    private _cgroupMode?;
    get cgroupMode(): string;
    set cgroupMode(value: string);
    resetCgroupMode(): void;
    get cgroupModeInput(): string | undefined;
}
export interface ContainerClusterNodePoolAutoConfigNetworkTags {
    /**
    * List of network tags applied to auto-provisioned node pools.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/container_cluster#tags ContainerCluster#tags}
    */
    readonly tags?: string[];
}
export declare function containerClusterNodePoolAutoConfigNetworkTagsToTerraform(struct?: ContainerClusterNodePoolAutoConfigNetworkTagsOutputReference | ContainerClusterNodePoolAutoConfigNetworkTags): any;
export declare function containerClusterNodePoolAutoConfigNetworkTagsToHclTerraform(struct?: ContainerClusterNodePoolAutoConfigNetworkTagsOutputReference | ContainerClusterNodePoolAutoConfigNetworkTags): any;
export declare class ContainerClusterNodePoolAutoConfigNetworkTagsOutputReference 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(): ContainerClusterNodePoolAutoConfigNetworkTags | undefined;
    set internalValue(value: ContainerClusterNodePoolAutoConfigNetworkTags | undefined);
    private _tags?;
    get tags(): string[];
    set tags(value: string[]);
    resetTags(): void;
    get tagsInput(): string[] | undefined;
}
