/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface GkeonpremBareMetalClusterConfig extends cdktf.TerraformMetaArguments {
    /**
    * The Admin Cluster this Bare Metal User Cluster belongs to.
    * This is the full resource name of the Admin Cluster's hub membership.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#admin_cluster_membership GkeonpremBareMetalCluster#admin_cluster_membership}
    */
    readonly adminClusterMembership: string;
    /**
    * Annotations on the Bare Metal User Cluster.
    * This field has the same restrictions as Kubernetes annotations.
    * The total size of all keys and values combined is limited to 256k.
    * Key can have 2 segments: prefix (optional) and name (required),
    * separated by a slash (/).
    * Prefix must be a DNS subdomain.
    * Name must be 63 characters or less, begin and end with alphanumerics,
    * with dashes (-), underscores (_), dots (.), and alphanumerics between.
    *
    *
    * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
    * Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#annotations GkeonpremBareMetalCluster#annotations}
    */
    readonly annotations?: {
        [key: string]: string;
    };
    /**
    * A human readable description of this Bare Metal User Cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#bare_metal_version GkeonpremBareMetalCluster#bare_metal_version}
    */
    readonly bareMetalVersion: string;
    /**
    * A human readable description of this Bare Metal User Cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#description GkeonpremBareMetalCluster#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#id GkeonpremBareMetalCluster#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * The location of the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#location GkeonpremBareMetalCluster#location}
    */
    readonly location: string;
    /**
    * The bare metal cluster name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#name GkeonpremBareMetalCluster#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#project GkeonpremBareMetalCluster#project}
    */
    readonly project?: string;
    /**
    * binary_authorization block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#binary_authorization GkeonpremBareMetalCluster#binary_authorization}
    */
    readonly binaryAuthorization?: GkeonpremBareMetalClusterBinaryAuthorization;
    /**
    * cluster_operations block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#cluster_operations GkeonpremBareMetalCluster#cluster_operations}
    */
    readonly clusterOperations?: GkeonpremBareMetalClusterClusterOperations;
    /**
    * control_plane block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#control_plane GkeonpremBareMetalCluster#control_plane}
    */
    readonly controlPlane: GkeonpremBareMetalClusterControlPlane;
    /**
    * load_balancer block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#load_balancer GkeonpremBareMetalCluster#load_balancer}
    */
    readonly loadBalancer: GkeonpremBareMetalClusterLoadBalancer;
    /**
    * maintenance_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#maintenance_config GkeonpremBareMetalCluster#maintenance_config}
    */
    readonly maintenanceConfig?: GkeonpremBareMetalClusterMaintenanceConfig;
    /**
    * network_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#network_config GkeonpremBareMetalCluster#network_config}
    */
    readonly networkConfig: GkeonpremBareMetalClusterNetworkConfig;
    /**
    * node_access_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#node_access_config GkeonpremBareMetalCluster#node_access_config}
    */
    readonly nodeAccessConfig?: GkeonpremBareMetalClusterNodeAccessConfig;
    /**
    * node_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#node_config GkeonpremBareMetalCluster#node_config}
    */
    readonly nodeConfig?: GkeonpremBareMetalClusterNodeConfig;
    /**
    * os_environment_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#os_environment_config GkeonpremBareMetalCluster#os_environment_config}
    */
    readonly osEnvironmentConfig?: GkeonpremBareMetalClusterOsEnvironmentConfig;
    /**
    * proxy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#proxy GkeonpremBareMetalCluster#proxy}
    */
    readonly proxy?: GkeonpremBareMetalClusterProxy;
    /**
    * security_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#security_config GkeonpremBareMetalCluster#security_config}
    */
    readonly securityConfig?: GkeonpremBareMetalClusterSecurityConfig;
    /**
    * storage block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#storage GkeonpremBareMetalCluster#storage}
    */
    readonly storage: GkeonpremBareMetalClusterStorage;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#timeouts GkeonpremBareMetalCluster#timeouts}
    */
    readonly timeouts?: GkeonpremBareMetalClusterTimeouts;
    /**
    * upgrade_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#upgrade_policy GkeonpremBareMetalCluster#upgrade_policy}
    */
    readonly upgradePolicy?: GkeonpremBareMetalClusterUpgradePolicy;
}
export interface GkeonpremBareMetalClusterFleet {
}
export declare function gkeonpremBareMetalClusterFleetToTerraform(struct?: GkeonpremBareMetalClusterFleet): any;
export declare function gkeonpremBareMetalClusterFleetToHclTerraform(struct?: GkeonpremBareMetalClusterFleet): any;
export declare class GkeonpremBareMetalClusterFleetOutputReference 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(): GkeonpremBareMetalClusterFleet | undefined;
    set internalValue(value: GkeonpremBareMetalClusterFleet | undefined);
    get membership(): string;
}
export declare class GkeonpremBareMetalClusterFleetList 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): GkeonpremBareMetalClusterFleetOutputReference;
}
export interface GkeonpremBareMetalClusterStatusConditions {
}
export declare function gkeonpremBareMetalClusterStatusConditionsToTerraform(struct?: GkeonpremBareMetalClusterStatusConditions): any;
export declare function gkeonpremBareMetalClusterStatusConditionsToHclTerraform(struct?: GkeonpremBareMetalClusterStatusConditions): any;
export declare class GkeonpremBareMetalClusterStatusConditionsOutputReference 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(): GkeonpremBareMetalClusterStatusConditions | undefined;
    set internalValue(value: GkeonpremBareMetalClusterStatusConditions | undefined);
    get lastTransitionTime(): string;
    get message(): string;
    get reason(): string;
    get state(): string;
    get type(): string;
}
export declare class GkeonpremBareMetalClusterStatusConditionsList 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): GkeonpremBareMetalClusterStatusConditionsOutputReference;
}
export interface GkeonpremBareMetalClusterStatus {
}
export declare function gkeonpremBareMetalClusterStatusToTerraform(struct?: GkeonpremBareMetalClusterStatus): any;
export declare function gkeonpremBareMetalClusterStatusToHclTerraform(struct?: GkeonpremBareMetalClusterStatus): any;
export declare class GkeonpremBareMetalClusterStatusOutputReference 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(): GkeonpremBareMetalClusterStatus | undefined;
    set internalValue(value: GkeonpremBareMetalClusterStatus | undefined);
    private _conditions;
    get conditions(): GkeonpremBareMetalClusterStatusConditionsList;
    get errorMessage(): string;
}
export declare class GkeonpremBareMetalClusterStatusList 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): GkeonpremBareMetalClusterStatusOutputReference;
}
export interface GkeonpremBareMetalClusterValidationCheckStatusResult {
}
export declare function gkeonpremBareMetalClusterValidationCheckStatusResultToTerraform(struct?: GkeonpremBareMetalClusterValidationCheckStatusResult): any;
export declare function gkeonpremBareMetalClusterValidationCheckStatusResultToHclTerraform(struct?: GkeonpremBareMetalClusterValidationCheckStatusResult): any;
export declare class GkeonpremBareMetalClusterValidationCheckStatusResultOutputReference 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(): GkeonpremBareMetalClusterValidationCheckStatusResult | undefined;
    set internalValue(value: GkeonpremBareMetalClusterValidationCheckStatusResult | undefined);
    get category(): string;
    get description(): string;
    get details(): string;
    get options(): string;
    get reason(): string;
}
export declare class GkeonpremBareMetalClusterValidationCheckStatusResultList 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): GkeonpremBareMetalClusterValidationCheckStatusResultOutputReference;
}
export interface GkeonpremBareMetalClusterValidationCheckStatus {
}
export declare function gkeonpremBareMetalClusterValidationCheckStatusToTerraform(struct?: GkeonpremBareMetalClusterValidationCheckStatus): any;
export declare function gkeonpremBareMetalClusterValidationCheckStatusToHclTerraform(struct?: GkeonpremBareMetalClusterValidationCheckStatus): any;
export declare class GkeonpremBareMetalClusterValidationCheckStatusOutputReference 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(): GkeonpremBareMetalClusterValidationCheckStatus | undefined;
    set internalValue(value: GkeonpremBareMetalClusterValidationCheckStatus | undefined);
    private _result;
    get result(): GkeonpremBareMetalClusterValidationCheckStatusResultList;
}
export declare class GkeonpremBareMetalClusterValidationCheckStatusList 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): GkeonpremBareMetalClusterValidationCheckStatusOutputReference;
}
export interface GkeonpremBareMetalClusterValidationCheck {
}
export declare function gkeonpremBareMetalClusterValidationCheckToTerraform(struct?: GkeonpremBareMetalClusterValidationCheck): any;
export declare function gkeonpremBareMetalClusterValidationCheckToHclTerraform(struct?: GkeonpremBareMetalClusterValidationCheck): any;
export declare class GkeonpremBareMetalClusterValidationCheckOutputReference 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(): GkeonpremBareMetalClusterValidationCheck | undefined;
    set internalValue(value: GkeonpremBareMetalClusterValidationCheck | undefined);
    get options(): string;
    get scenario(): string;
    private _status;
    get status(): GkeonpremBareMetalClusterValidationCheckStatusList;
}
export declare class GkeonpremBareMetalClusterValidationCheckList 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): GkeonpremBareMetalClusterValidationCheckOutputReference;
}
export interface GkeonpremBareMetalClusterBinaryAuthorization {
    /**
    * Mode of operation for binauthz policy evaluation. If unspecified,
    * defaults to DISABLED. Possible values: ["DISABLED", "PROJECT_SINGLETON_POLICY_ENFORCE"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#evaluation_mode GkeonpremBareMetalCluster#evaluation_mode}
    */
    readonly evaluationMode?: string;
}
export declare function gkeonpremBareMetalClusterBinaryAuthorizationToTerraform(struct?: GkeonpremBareMetalClusterBinaryAuthorizationOutputReference | GkeonpremBareMetalClusterBinaryAuthorization): any;
export declare function gkeonpremBareMetalClusterBinaryAuthorizationToHclTerraform(struct?: GkeonpremBareMetalClusterBinaryAuthorizationOutputReference | GkeonpremBareMetalClusterBinaryAuthorization): any;
export declare class GkeonpremBareMetalClusterBinaryAuthorizationOutputReference 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(): GkeonpremBareMetalClusterBinaryAuthorization | undefined;
    set internalValue(value: GkeonpremBareMetalClusterBinaryAuthorization | undefined);
    private _evaluationMode?;
    get evaluationMode(): string;
    set evaluationMode(value: string);
    resetEvaluationMode(): void;
    get evaluationModeInput(): string | undefined;
}
export interface GkeonpremBareMetalClusterClusterOperations {
    /**
    * Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#enable_application_logs GkeonpremBareMetalCluster#enable_application_logs}
    */
    readonly enableApplicationLogs?: boolean | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalClusterClusterOperationsToTerraform(struct?: GkeonpremBareMetalClusterClusterOperationsOutputReference | GkeonpremBareMetalClusterClusterOperations): any;
export declare function gkeonpremBareMetalClusterClusterOperationsToHclTerraform(struct?: GkeonpremBareMetalClusterClusterOperationsOutputReference | GkeonpremBareMetalClusterClusterOperations): any;
export declare class GkeonpremBareMetalClusterClusterOperationsOutputReference 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(): GkeonpremBareMetalClusterClusterOperations | undefined;
    set internalValue(value: GkeonpremBareMetalClusterClusterOperations | undefined);
    private _enableApplicationLogs?;
    get enableApplicationLogs(): boolean | cdktf.IResolvable;
    set enableApplicationLogs(value: boolean | cdktf.IResolvable);
    resetEnableApplicationLogs(): void;
    get enableApplicationLogsInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremBareMetalClusterControlPlaneApiServerArgs {
    /**
    * The argument name as it appears on the API Server command line please make sure to remove the leading dashes.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#argument GkeonpremBareMetalCluster#argument}
    */
    readonly argument: string;
    /**
    * The value of the arg as it will be passed to the API Server command line.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#value GkeonpremBareMetalCluster#value}
    */
    readonly value: string;
}
export declare function gkeonpremBareMetalClusterControlPlaneApiServerArgsToTerraform(struct?: GkeonpremBareMetalClusterControlPlaneApiServerArgs | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalClusterControlPlaneApiServerArgsToHclTerraform(struct?: GkeonpremBareMetalClusterControlPlaneApiServerArgs | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalClusterControlPlaneApiServerArgsOutputReference 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(): GkeonpremBareMetalClusterControlPlaneApiServerArgs | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalClusterControlPlaneApiServerArgs | cdktf.IResolvable | undefined);
    private _argument?;
    get argument(): string;
    set argument(value: string);
    get argumentInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    get valueInput(): string | undefined;
}
export declare class GkeonpremBareMetalClusterControlPlaneApiServerArgsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalClusterControlPlaneApiServerArgs[] | 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): GkeonpremBareMetalClusterControlPlaneApiServerArgsOutputReference;
}
export interface GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs {
    /**
    * 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. In case of conflict in
    * label keys, the applied set may differ depending on the Kubernetes
    * version -- it's best to assume the behavior is undefined and
    * conflicts should be avoided. For more information, including usage
    * and the valid values, see:
    *   - http://kubernetes.io/v1.1/docs/user-guide/labels.html
    * An object containing a list of "key": value pairs.
    * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#labels GkeonpremBareMetalCluster#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The default IPv4 address for SSH access and Kubernetes node.
    * Example: 192.168.0.1
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#node_ip GkeonpremBareMetalCluster#node_ip}
    */
    readonly nodeIp?: string;
}
export declare function gkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigsToTerraform(struct?: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigsToHclTerraform(struct?: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigsOutputReference 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(): GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable | undefined);
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _nodeIp?;
    get nodeIp(): string;
    set nodeIp(value: string);
    resetNodeIp(): void;
    get nodeIpInput(): string | undefined;
}
export declare class GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs[] | 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): GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigsOutputReference;
}
export interface GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints {
    /**
    * Specifies the nodes operating system (default: LINUX). Possible values: ["EFFECT_UNSPECIFIED", "PREFER_NO_SCHEDULE", "NO_EXECUTE"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#effect GkeonpremBareMetalCluster#effect}
    */
    readonly effect?: string;
    /**
    * Key associated with the effect.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#key GkeonpremBareMetalCluster#key}
    */
    readonly key?: string;
    /**
    * Value associated with the effect.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#value GkeonpremBareMetalCluster#value}
    */
    readonly value?: string;
}
export declare function gkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintsToTerraform(struct?: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintsToHclTerraform(struct?: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintsOutputReference 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(): GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable | undefined);
    private _effect?;
    get effect(): string;
    set effect(value: string);
    resetEffect(): void;
    get effectInput(): string | undefined;
    private _key?;
    get key(): string;
    set key(value: string);
    resetKey(): void;
    get keyInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    resetValue(): void;
    get valueInput(): string | undefined;
}
export declare class GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints[] | 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): GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintsOutputReference;
}
export interface GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig {
    /**
    * 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. In case of conflict in
    * label keys, the applied set may differ depending on the Kubernetes
    * version -- it's best to assume the behavior is undefined and
    * conflicts should be avoided. For more information, including usage
    * and the valid values, see:
    *   - http://kubernetes.io/v1.1/docs/user-guide/labels.html
    * An object containing a list of "key": value pairs.
    * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#labels GkeonpremBareMetalCluster#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * Specifies the nodes operating system (default: LINUX).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#operating_system GkeonpremBareMetalCluster#operating_system}
    */
    readonly operatingSystem?: string;
    /**
    * node_configs block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#node_configs GkeonpremBareMetalCluster#node_configs}
    */
    readonly nodeConfigs?: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs[] | cdktf.IResolvable;
    /**
    * taints block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#taints GkeonpremBareMetalCluster#taints}
    */
    readonly taints?: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints[] | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigToTerraform(struct?: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigOutputReference | GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig): any;
export declare function gkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigToHclTerraform(struct?: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigOutputReference | GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig): any;
export declare class GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigOutputReference 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(): GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig | undefined);
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _operatingSystem?;
    get operatingSystem(): string;
    set operatingSystem(value: string);
    resetOperatingSystem(): void;
    get operatingSystemInput(): string | undefined;
    private _nodeConfigs;
    get nodeConfigs(): GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigsList;
    putNodeConfigs(value: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs[] | cdktf.IResolvable): void;
    resetNodeConfigs(): void;
    get nodeConfigsInput(): cdktf.IResolvable | GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs[] | undefined;
    private _taints;
    get taints(): GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintsList;
    putTaints(value: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints[] | cdktf.IResolvable): void;
    resetTaints(): void;
    get taintsInput(): cdktf.IResolvable | GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints[] | undefined;
}
export interface GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfig {
    /**
    * node_pool_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#node_pool_config GkeonpremBareMetalCluster#node_pool_config}
    */
    readonly nodePoolConfig: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig;
}
export declare function gkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigToTerraform(struct?: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigOutputReference | GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfig): any;
export declare function gkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigToHclTerraform(struct?: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigOutputReference | GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfig): any;
export declare class GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigOutputReference 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(): GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfig | undefined);
    private _nodePoolConfig;
    get nodePoolConfig(): GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigOutputReference;
    putNodePoolConfig(value: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig): void;
    get nodePoolConfigInput(): GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig | undefined;
}
export interface GkeonpremBareMetalClusterControlPlane {
    /**
    * api_server_args block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#api_server_args GkeonpremBareMetalCluster#api_server_args}
    */
    readonly apiServerArgs?: GkeonpremBareMetalClusterControlPlaneApiServerArgs[] | cdktf.IResolvable;
    /**
    * control_plane_node_pool_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#control_plane_node_pool_config GkeonpremBareMetalCluster#control_plane_node_pool_config}
    */
    readonly controlPlaneNodePoolConfig: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfig;
}
export declare function gkeonpremBareMetalClusterControlPlaneToTerraform(struct?: GkeonpremBareMetalClusterControlPlaneOutputReference | GkeonpremBareMetalClusterControlPlane): any;
export declare function gkeonpremBareMetalClusterControlPlaneToHclTerraform(struct?: GkeonpremBareMetalClusterControlPlaneOutputReference | GkeonpremBareMetalClusterControlPlane): any;
export declare class GkeonpremBareMetalClusterControlPlaneOutputReference 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(): GkeonpremBareMetalClusterControlPlane | undefined;
    set internalValue(value: GkeonpremBareMetalClusterControlPlane | undefined);
    private _apiServerArgs;
    get apiServerArgs(): GkeonpremBareMetalClusterControlPlaneApiServerArgsList;
    putApiServerArgs(value: GkeonpremBareMetalClusterControlPlaneApiServerArgs[] | cdktf.IResolvable): void;
    resetApiServerArgs(): void;
    get apiServerArgsInput(): cdktf.IResolvable | GkeonpremBareMetalClusterControlPlaneApiServerArgs[] | undefined;
    private _controlPlaneNodePoolConfig;
    get controlPlaneNodePoolConfig(): GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfigOutputReference;
    putControlPlaneNodePoolConfig(value: GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfig): void;
    get controlPlaneNodePoolConfigInput(): GkeonpremBareMetalClusterControlPlaneControlPlaneNodePoolConfig | undefined;
}
export interface GkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPools {
    /**
    * The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#addresses GkeonpremBareMetalCluster#addresses}
    */
    readonly addresses: string[];
    /**
    * If true, avoid using IPs ending in .0 or .255.
    * This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#avoid_buggy_ips GkeonpremBareMetalCluster#avoid_buggy_ips}
    */
    readonly avoidBuggyIps?: boolean | cdktf.IResolvable;
    /**
    * If true, prevent IP addresses from being automatically assigned.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#manual_assign GkeonpremBareMetalCluster#manual_assign}
    */
    readonly manualAssign?: string;
    /**
    * The name of the address pool.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#pool GkeonpremBareMetalCluster#pool}
    */
    readonly pool: string;
}
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPoolsToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPools | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPoolsToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPools | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPoolsOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPools | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPools | cdktf.IResolvable | undefined);
    private _addresses?;
    get addresses(): string[];
    set addresses(value: string[]);
    get addressesInput(): string[] | undefined;
    private _avoidBuggyIps?;
    get avoidBuggyIps(): boolean | cdktf.IResolvable;
    set avoidBuggyIps(value: boolean | cdktf.IResolvable);
    resetAvoidBuggyIps(): void;
    get avoidBuggyIpsInput(): boolean | cdktf.IResolvable | undefined;
    private _manualAssign?;
    get manualAssign(): string;
    set manualAssign(value: string);
    resetManualAssign(): void;
    get manualAssignInput(): string | undefined;
    private _pool?;
    get pool(): string;
    set pool(value: string);
    get poolInput(): string | undefined;
}
export declare class GkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPoolsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPools[] | 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): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPoolsOutputReference;
}
export interface GkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigs {
    /**
    * BGP autonomous system number (ASN) for the network that contains the
    * external peer device.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#asn GkeonpremBareMetalCluster#asn}
    */
    readonly asn: number;
    /**
    * The IP address of the control plane node that connects to the external
    * peer.
    * If you don't specify any control plane nodes, all control plane nodes
    * can connect to the external peer. If you specify one or more IP addresses,
    * only the nodes specified participate in peering sessions.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#control_plane_nodes GkeonpremBareMetalCluster#control_plane_nodes}
    */
    readonly controlPlaneNodes?: string[];
    /**
    * The IP address of the external peer device.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#ip_address GkeonpremBareMetalCluster#ip_address}
    */
    readonly ipAddress: string;
}
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigsToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigs | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigsToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigs | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigsOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigs | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigs | cdktf.IResolvable | undefined);
    private _asn?;
    get asn(): number;
    set asn(value: number);
    get asnInput(): number | undefined;
    private _controlPlaneNodes?;
    get controlPlaneNodes(): string[];
    set controlPlaneNodes(value: string[]);
    resetControlPlaneNodes(): void;
    get controlPlaneNodesInput(): string[] | undefined;
    private _ipAddress?;
    get ipAddress(): string;
    set ipAddress(value: string);
    get ipAddressInput(): string | undefined;
}
export declare class GkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigs[] | 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): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigsOutputReference;
}
export interface GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig {
    /**
    * The maximum size of bursty pulls, temporarily allows pulls to burst to this
    * number, while still not exceeding registry_pull_qps.
    * The value must not be a negative number.
    * Updating this field may impact scalability by changing the amount of
    * traffic produced by image pulls.
    * Defaults to 10.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#registry_burst GkeonpremBareMetalCluster#registry_burst}
    */
    readonly registryBurst?: number;
    /**
    * The limit of registry pulls per second.
    * Setting this value to 0 means no limit.
    * Updating this field may impact scalability by changing the amount of
    * traffic produced by image pulls.
    * Defaults to 5.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#registry_pull_qps GkeonpremBareMetalCluster#registry_pull_qps}
    */
    readonly registryPullQps?: number;
    /**
    * Prevents the Kubelet from pulling multiple images at a time.
    * We recommend *not* changing the default value on nodes that run docker
    * daemon with version  < 1.9 or an Another Union File System (Aufs) storage
    * backend. Issue https://github.com/kubernetes/kubernetes/issues/10959 has
    * more details.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#serialize_image_pulls_disabled GkeonpremBareMetalCluster#serialize_image_pulls_disabled}
    */
    readonly serializeImagePullsDisabled?: boolean | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig): any;
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig): any;
export declare class GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig | undefined);
    private _registryBurst?;
    get registryBurst(): number;
    set registryBurst(value: number);
    resetRegistryBurst(): void;
    get registryBurstInput(): number | undefined;
    private _registryPullQps?;
    get registryPullQps(): number;
    set registryPullQps(value: number);
    resetRegistryPullQps(): void;
    get registryPullQpsInput(): number | undefined;
    private _serializeImagePullsDisabled?;
    get serializeImagePullsDisabled(): boolean | cdktf.IResolvable;
    set serializeImagePullsDisabled(value: boolean | cdktf.IResolvable);
    resetSerializeImagePullsDisabled(): void;
    get serializeImagePullsDisabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs {
    /**
    * 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. In case of conflict in
    * label keys, the applied set may differ depending on the Kubernetes
    * version -- it's best to assume the behavior is undefined and
    * conflicts should be avoided. For more information, including usage
    * and the valid values, see:
    *   - http://kubernetes.io/v1.1/docs/user-guide/labels.html
    * An object containing a list of "key": value pairs.
    * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#labels GkeonpremBareMetalCluster#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The default IPv4 address for SSH access and Kubernetes node.
    * Example: 192.168.0.1
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#node_ip GkeonpremBareMetalCluster#node_ip}
    */
    readonly nodeIp?: string;
}
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigsToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigsToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigsOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable | undefined);
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _nodeIp?;
    get nodeIp(): string;
    set nodeIp(value: string);
    resetNodeIp(): void;
    get nodeIpInput(): string | undefined;
}
export declare class GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs[] | 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): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigsOutputReference;
}
export interface GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints {
    /**
    * Specifies the nodes operating system (default: LINUX). Possible values: ["EFFECT_UNSPECIFIED", "PREFER_NO_SCHEDULE", "NO_EXECUTE"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#effect GkeonpremBareMetalCluster#effect}
    */
    readonly effect?: string;
    /**
    * Key associated with the effect.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#key GkeonpremBareMetalCluster#key}
    */
    readonly key?: string;
    /**
    * Value associated with the effect.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#value GkeonpremBareMetalCluster#value}
    */
    readonly value?: string;
}
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintsToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintsToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintsOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable | undefined);
    private _effect?;
    get effect(): string;
    set effect(value: string);
    resetEffect(): void;
    get effectInput(): string | undefined;
    private _key?;
    get key(): string;
    set key(value: string);
    resetKey(): void;
    get keyInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    resetValue(): void;
    get valueInput(): string | undefined;
}
export declare class GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints[] | 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): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintsOutputReference;
}
export interface GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig {
    /**
    * 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. In case of conflict in
    * label keys, the applied set may differ depending on the Kubernetes
    * version -- it's best to assume the behavior is undefined and
    * conflicts should be avoided. For more information, including usage
    * and the valid values, see:
    *   - http://kubernetes.io/v1.1/docs/user-guide/labels.html
    * An object containing a list of "key": value pairs.
    * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#labels GkeonpremBareMetalCluster#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * Specifies the nodes operating system (default: LINUX).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#operating_system GkeonpremBareMetalCluster#operating_system}
    */
    readonly operatingSystem?: string;
    /**
    * kubelet_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#kubelet_config GkeonpremBareMetalCluster#kubelet_config}
    */
    readonly kubeletConfig?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig;
    /**
    * node_configs block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#node_configs GkeonpremBareMetalCluster#node_configs}
    */
    readonly nodeConfigs?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs[] | cdktf.IResolvable;
    /**
    * taints block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#taints GkeonpremBareMetalCluster#taints}
    */
    readonly taints?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints[] | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig): any;
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig): any;
export declare class GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig | undefined);
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _operatingSystem?;
    get operatingSystem(): string;
    set operatingSystem(value: string);
    resetOperatingSystem(): void;
    get operatingSystemInput(): string | undefined;
    private _kubeletConfig;
    get kubeletConfig(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfigOutputReference;
    putKubeletConfig(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig): void;
    resetKubeletConfig(): void;
    get kubeletConfigInput(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigKubeletConfig | undefined;
    private _nodeConfigs;
    get nodeConfigs(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigsList;
    putNodeConfigs(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs[] | cdktf.IResolvable): void;
    resetNodeConfigs(): void;
    get nodeConfigsInput(): cdktf.IResolvable | GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs[] | undefined;
    private _taints;
    get taints(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintsList;
    putTaints(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints[] | cdktf.IResolvable): void;
    resetTaints(): void;
    get taintsInput(): cdktf.IResolvable | GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints[] | undefined;
}
export interface GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig {
    /**
    * node_pool_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#node_pool_config GkeonpremBareMetalCluster#node_pool_config}
    */
    readonly nodePoolConfig?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig;
}
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig): any;
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig): any;
export declare class GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig | undefined);
    private _nodePoolConfig;
    get nodePoolConfig(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigOutputReference;
    putNodePoolConfig(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig): void;
    resetNodePoolConfig(): void;
    get nodePoolConfigInput(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig | undefined;
}
export interface GkeonpremBareMetalClusterLoadBalancerBgpLbConfig {
    /**
    * BGP autonomous system number (ASN) of the cluster.
    * This field can be updated after cluster creation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#asn GkeonpremBareMetalCluster#asn}
    */
    readonly asn: number;
    /**
    * address_pools block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#address_pools GkeonpremBareMetalCluster#address_pools}
    */
    readonly addressPools: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPools[] | cdktf.IResolvable;
    /**
    * bgp_peer_configs block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#bgp_peer_configs GkeonpremBareMetalCluster#bgp_peer_configs}
    */
    readonly bgpPeerConfigs: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigs[] | cdktf.IResolvable;
    /**
    * load_balancer_node_pool_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#load_balancer_node_pool_config GkeonpremBareMetalCluster#load_balancer_node_pool_config}
    */
    readonly loadBalancerNodePoolConfig?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig;
}
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerBgpLbConfig): any;
export declare function gkeonpremBareMetalClusterLoadBalancerBgpLbConfigToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerBgpLbConfig): any;
export declare class GkeonpremBareMetalClusterLoadBalancerBgpLbConfigOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfig | undefined);
    private _asn?;
    get asn(): number;
    set asn(value: number);
    get asnInput(): number | undefined;
    private _addressPools;
    get addressPools(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPoolsList;
    putAddressPools(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPools[] | cdktf.IResolvable): void;
    get addressPoolsInput(): cdktf.IResolvable | GkeonpremBareMetalClusterLoadBalancerBgpLbConfigAddressPools[] | undefined;
    private _bgpPeerConfigs;
    get bgpPeerConfigs(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigsList;
    putBgpPeerConfigs(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigs[] | cdktf.IResolvable): void;
    get bgpPeerConfigsInput(): cdktf.IResolvable | GkeonpremBareMetalClusterLoadBalancerBgpLbConfigBgpPeerConfigs[] | undefined;
    private _loadBalancerNodePoolConfig;
    get loadBalancerNodePoolConfig(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigOutputReference;
    putLoadBalancerNodePoolConfig(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig): void;
    resetLoadBalancerNodePoolConfig(): void;
    get loadBalancerNodePoolConfigInput(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig | undefined;
}
export interface GkeonpremBareMetalClusterLoadBalancerManualLbConfig {
    /**
    * Whether manual load balancing is enabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#enabled GkeonpremBareMetalCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalClusterLoadBalancerManualLbConfigToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerManualLbConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerManualLbConfig): any;
export declare function gkeonpremBareMetalClusterLoadBalancerManualLbConfigToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerManualLbConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerManualLbConfig): any;
export declare class GkeonpremBareMetalClusterLoadBalancerManualLbConfigOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerManualLbConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerManualLbConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPools {
    /**
    * The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#addresses GkeonpremBareMetalCluster#addresses}
    */
    readonly addresses: string[];
    /**
    * If true, avoid using IPs ending in .0 or .255.
    * This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#avoid_buggy_ips GkeonpremBareMetalCluster#avoid_buggy_ips}
    */
    readonly avoidBuggyIps?: boolean | cdktf.IResolvable;
    /**
    * If true, prevent IP addresses from being automatically assigned.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#manual_assign GkeonpremBareMetalCluster#manual_assign}
    */
    readonly manualAssign?: boolean | cdktf.IResolvable;
    /**
    * The name of the address pool.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#pool GkeonpremBareMetalCluster#pool}
    */
    readonly pool: string;
}
export declare function gkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPoolsToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPools | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPoolsToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPools | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPoolsOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPools | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPools | cdktf.IResolvable | undefined);
    private _addresses?;
    get addresses(): string[];
    set addresses(value: string[]);
    get addressesInput(): string[] | undefined;
    private _avoidBuggyIps?;
    get avoidBuggyIps(): boolean | cdktf.IResolvable;
    set avoidBuggyIps(value: boolean | cdktf.IResolvable);
    resetAvoidBuggyIps(): void;
    get avoidBuggyIpsInput(): boolean | cdktf.IResolvable | undefined;
    private _manualAssign?;
    get manualAssign(): boolean | cdktf.IResolvable;
    set manualAssign(value: boolean | cdktf.IResolvable);
    resetManualAssign(): void;
    get manualAssignInput(): boolean | cdktf.IResolvable | undefined;
    private _pool?;
    get pool(): string;
    set pool(value: string);
    get poolInput(): string | undefined;
}
export declare class GkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPoolsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPools[] | 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): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPoolsOutputReference;
}
export interface GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs {
    /**
    * 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. In case of conflict in
    * label keys, the applied set may differ depending on the Kubernetes
    * version -- it's best to assume the behavior is undefined and
    * conflicts should be avoided. For more information, including usage
    * and the valid values, see:
    *   - http://kubernetes.io/v1.1/docs/user-guide/labels.html
    * An object containing a list of "key": value pairs.
    * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#labels GkeonpremBareMetalCluster#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The default IPv4 address for SSH access and Kubernetes node.
    * Example: 192.168.0.1
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#node_ip GkeonpremBareMetalCluster#node_ip}
    */
    readonly nodeIp?: string;
}
export declare function gkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigsToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigsToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigsOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable | undefined);
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _nodeIp?;
    get nodeIp(): string;
    set nodeIp(value: string);
    resetNodeIp(): void;
    get nodeIpInput(): string | undefined;
}
export declare class GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs[] | 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): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigsOutputReference;
}
export interface GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints {
    /**
    * Specifies the nodes operating system (default: LINUX). Possible values: ["EFFECT_UNSPECIFIED", "PREFER_NO_SCHEDULE", "NO_EXECUTE"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#effect GkeonpremBareMetalCluster#effect}
    */
    readonly effect?: string;
    /**
    * Key associated with the effect.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#key GkeonpremBareMetalCluster#key}
    */
    readonly key?: string;
    /**
    * Value associated with the effect.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#value GkeonpremBareMetalCluster#value}
    */
    readonly value?: string;
}
export declare function gkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintsToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintsToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintsOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable | undefined);
    private _effect?;
    get effect(): string;
    set effect(value: string);
    resetEffect(): void;
    get effectInput(): string | undefined;
    private _key?;
    get key(): string;
    set key(value: string);
    resetKey(): void;
    get keyInput(): string | undefined;
    private _value?;
    get value(): string;
    set value(value: string);
    resetValue(): void;
    get valueInput(): string | undefined;
}
export declare class GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints[] | 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): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintsOutputReference;
}
export interface GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig {
    /**
    * 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. In case of conflict in
    * label keys, the applied set may differ depending on the Kubernetes
    * version -- it's best to assume the behavior is undefined and
    * conflicts should be avoided. For more information, including usage
    * and the valid values, see:
    *   - http://kubernetes.io/v1.1/docs/user-guide/labels.html
    * An object containing a list of "key": value pairs.
    * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#labels GkeonpremBareMetalCluster#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * Specifies the nodes operating system (default: LINUX).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#operating_system GkeonpremBareMetalCluster#operating_system}
    */
    readonly operatingSystem?: string;
    /**
    * node_configs block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#node_configs GkeonpremBareMetalCluster#node_configs}
    */
    readonly nodeConfigs?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs[] | cdktf.IResolvable;
    /**
    * taints block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#taints GkeonpremBareMetalCluster#taints}
    */
    readonly taints?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints[] | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig): any;
export declare function gkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig): any;
export declare class GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig | undefined);
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _operatingSystem?;
    get operatingSystem(): string;
    set operatingSystem(value: string);
    resetOperatingSystem(): void;
    get operatingSystemInput(): string | undefined;
    private _nodeConfigs;
    get nodeConfigs(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigsList;
    putNodeConfigs(value: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs[] | cdktf.IResolvable): void;
    resetNodeConfigs(): void;
    get nodeConfigsInput(): cdktf.IResolvable | GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigs[] | undefined;
    private _taints;
    get taints(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaintsList;
    putTaints(value: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints[] | cdktf.IResolvable): void;
    resetTaints(): void;
    get taintsInput(): cdktf.IResolvable | GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigTaints[] | undefined;
}
export interface GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig {
    /**
    * node_pool_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#node_pool_config GkeonpremBareMetalCluster#node_pool_config}
    */
    readonly nodePoolConfig?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig;
}
export declare function gkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig): any;
export declare function gkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig): any;
export declare class GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig | undefined);
    private _nodePoolConfig;
    get nodePoolConfig(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigOutputReference;
    putNodePoolConfig(value: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig): void;
    resetNodePoolConfig(): void;
    get nodePoolConfigInput(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig | undefined;
}
export interface GkeonpremBareMetalClusterLoadBalancerMetalLbConfig {
    /**
    * address_pools block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#address_pools GkeonpremBareMetalCluster#address_pools}
    */
    readonly addressPools: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPools[] | cdktf.IResolvable;
    /**
    * load_balancer_node_pool_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#load_balancer_node_pool_config GkeonpremBareMetalCluster#load_balancer_node_pool_config}
    */
    readonly loadBalancerNodePoolConfig?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig;
}
export declare function gkeonpremBareMetalClusterLoadBalancerMetalLbConfigToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerMetalLbConfig): any;
export declare function gkeonpremBareMetalClusterLoadBalancerMetalLbConfigToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerMetalLbConfig): any;
export declare class GkeonpremBareMetalClusterLoadBalancerMetalLbConfigOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerMetalLbConfig | undefined);
    private _addressPools;
    get addressPools(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPoolsList;
    putAddressPools(value: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPools[] | cdktf.IResolvable): void;
    get addressPoolsInput(): cdktf.IResolvable | GkeonpremBareMetalClusterLoadBalancerMetalLbConfigAddressPools[] | undefined;
    private _loadBalancerNodePoolConfig;
    get loadBalancerNodePoolConfig(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigOutputReference;
    putLoadBalancerNodePoolConfig(value: GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig): void;
    resetLoadBalancerNodePoolConfig(): void;
    get loadBalancerNodePoolConfigInput(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfig | undefined;
}
export interface GkeonpremBareMetalClusterLoadBalancerPortConfig {
    /**
    * The port that control plane hosted load balancers will listen on.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#control_plane_load_balancer_port GkeonpremBareMetalCluster#control_plane_load_balancer_port}
    */
    readonly controlPlaneLoadBalancerPort: number;
}
export declare function gkeonpremBareMetalClusterLoadBalancerPortConfigToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerPortConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerPortConfig): any;
export declare function gkeonpremBareMetalClusterLoadBalancerPortConfigToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerPortConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerPortConfig): any;
export declare class GkeonpremBareMetalClusterLoadBalancerPortConfigOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerPortConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerPortConfig | undefined);
    private _controlPlaneLoadBalancerPort?;
    get controlPlaneLoadBalancerPort(): number;
    set controlPlaneLoadBalancerPort(value: number);
    get controlPlaneLoadBalancerPortInput(): number | undefined;
}
export interface GkeonpremBareMetalClusterLoadBalancerVipConfig {
    /**
    * The VIP which you previously set aside for the Kubernetes API of this Bare Metal User Cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#control_plane_vip GkeonpremBareMetalCluster#control_plane_vip}
    */
    readonly controlPlaneVip: string;
    /**
    * The VIP which you previously set aside for ingress traffic into this Bare Metal User Cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#ingress_vip GkeonpremBareMetalCluster#ingress_vip}
    */
    readonly ingressVip: string;
}
export declare function gkeonpremBareMetalClusterLoadBalancerVipConfigToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerVipConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerVipConfig): any;
export declare function gkeonpremBareMetalClusterLoadBalancerVipConfigToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerVipConfigOutputReference | GkeonpremBareMetalClusterLoadBalancerVipConfig): any;
export declare class GkeonpremBareMetalClusterLoadBalancerVipConfigOutputReference 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(): GkeonpremBareMetalClusterLoadBalancerVipConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancerVipConfig | undefined);
    private _controlPlaneVip?;
    get controlPlaneVip(): string;
    set controlPlaneVip(value: string);
    get controlPlaneVipInput(): string | undefined;
    private _ingressVip?;
    get ingressVip(): string;
    set ingressVip(value: string);
    get ingressVipInput(): string | undefined;
}
export interface GkeonpremBareMetalClusterLoadBalancer {
    /**
    * bgp_lb_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#bgp_lb_config GkeonpremBareMetalCluster#bgp_lb_config}
    */
    readonly bgpLbConfig?: GkeonpremBareMetalClusterLoadBalancerBgpLbConfig;
    /**
    * manual_lb_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#manual_lb_config GkeonpremBareMetalCluster#manual_lb_config}
    */
    readonly manualLbConfig?: GkeonpremBareMetalClusterLoadBalancerManualLbConfig;
    /**
    * metal_lb_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#metal_lb_config GkeonpremBareMetalCluster#metal_lb_config}
    */
    readonly metalLbConfig?: GkeonpremBareMetalClusterLoadBalancerMetalLbConfig;
    /**
    * port_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#port_config GkeonpremBareMetalCluster#port_config}
    */
    readonly portConfig: GkeonpremBareMetalClusterLoadBalancerPortConfig;
    /**
    * vip_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#vip_config GkeonpremBareMetalCluster#vip_config}
    */
    readonly vipConfig: GkeonpremBareMetalClusterLoadBalancerVipConfig;
}
export declare function gkeonpremBareMetalClusterLoadBalancerToTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerOutputReference | GkeonpremBareMetalClusterLoadBalancer): any;
export declare function gkeonpremBareMetalClusterLoadBalancerToHclTerraform(struct?: GkeonpremBareMetalClusterLoadBalancerOutputReference | GkeonpremBareMetalClusterLoadBalancer): any;
export declare class GkeonpremBareMetalClusterLoadBalancerOutputReference 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(): GkeonpremBareMetalClusterLoadBalancer | undefined;
    set internalValue(value: GkeonpremBareMetalClusterLoadBalancer | undefined);
    private _bgpLbConfig;
    get bgpLbConfig(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfigOutputReference;
    putBgpLbConfig(value: GkeonpremBareMetalClusterLoadBalancerBgpLbConfig): void;
    resetBgpLbConfig(): void;
    get bgpLbConfigInput(): GkeonpremBareMetalClusterLoadBalancerBgpLbConfig | undefined;
    private _manualLbConfig;
    get manualLbConfig(): GkeonpremBareMetalClusterLoadBalancerManualLbConfigOutputReference;
    putManualLbConfig(value: GkeonpremBareMetalClusterLoadBalancerManualLbConfig): void;
    resetManualLbConfig(): void;
    get manualLbConfigInput(): GkeonpremBareMetalClusterLoadBalancerManualLbConfig | undefined;
    private _metalLbConfig;
    get metalLbConfig(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfigOutputReference;
    putMetalLbConfig(value: GkeonpremBareMetalClusterLoadBalancerMetalLbConfig): void;
    resetMetalLbConfig(): void;
    get metalLbConfigInput(): GkeonpremBareMetalClusterLoadBalancerMetalLbConfig | undefined;
    private _portConfig;
    get portConfig(): GkeonpremBareMetalClusterLoadBalancerPortConfigOutputReference;
    putPortConfig(value: GkeonpremBareMetalClusterLoadBalancerPortConfig): void;
    get portConfigInput(): GkeonpremBareMetalClusterLoadBalancerPortConfig | undefined;
    private _vipConfig;
    get vipConfig(): GkeonpremBareMetalClusterLoadBalancerVipConfigOutputReference;
    putVipConfig(value: GkeonpremBareMetalClusterLoadBalancerVipConfig): void;
    get vipConfigInput(): GkeonpremBareMetalClusterLoadBalancerVipConfig | undefined;
}
export interface GkeonpremBareMetalClusterMaintenanceConfig {
    /**
    * All IPv4 address from these ranges will be placed into maintenance mode.
    * Nodes in maintenance mode will be cordoned and drained. When both of these
    * are true, the "baremetal.cluster.gke.io/maintenance" annotation will be set
    * on the node resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#maintenance_address_cidr_blocks GkeonpremBareMetalCluster#maintenance_address_cidr_blocks}
    */
    readonly maintenanceAddressCidrBlocks: string[];
}
export declare function gkeonpremBareMetalClusterMaintenanceConfigToTerraform(struct?: GkeonpremBareMetalClusterMaintenanceConfigOutputReference | GkeonpremBareMetalClusterMaintenanceConfig): any;
export declare function gkeonpremBareMetalClusterMaintenanceConfigToHclTerraform(struct?: GkeonpremBareMetalClusterMaintenanceConfigOutputReference | GkeonpremBareMetalClusterMaintenanceConfig): any;
export declare class GkeonpremBareMetalClusterMaintenanceConfigOutputReference 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(): GkeonpremBareMetalClusterMaintenanceConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterMaintenanceConfig | undefined);
    private _maintenanceAddressCidrBlocks?;
    get maintenanceAddressCidrBlocks(): string[];
    set maintenanceAddressCidrBlocks(value: string[]);
    get maintenanceAddressCidrBlocksInput(): string[] | undefined;
}
export interface GkeonpremBareMetalClusterNetworkConfigIslandModeCidr {
    /**
    * All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#pod_address_cidr_blocks GkeonpremBareMetalCluster#pod_address_cidr_blocks}
    */
    readonly podAddressCidrBlocks: string[];
    /**
    * All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#service_address_cidr_blocks GkeonpremBareMetalCluster#service_address_cidr_blocks}
    */
    readonly serviceAddressCidrBlocks: string[];
}
export declare function gkeonpremBareMetalClusterNetworkConfigIslandModeCidrToTerraform(struct?: GkeonpremBareMetalClusterNetworkConfigIslandModeCidrOutputReference | GkeonpremBareMetalClusterNetworkConfigIslandModeCidr): any;
export declare function gkeonpremBareMetalClusterNetworkConfigIslandModeCidrToHclTerraform(struct?: GkeonpremBareMetalClusterNetworkConfigIslandModeCidrOutputReference | GkeonpremBareMetalClusterNetworkConfigIslandModeCidr): any;
export declare class GkeonpremBareMetalClusterNetworkConfigIslandModeCidrOutputReference 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(): GkeonpremBareMetalClusterNetworkConfigIslandModeCidr | undefined;
    set internalValue(value: GkeonpremBareMetalClusterNetworkConfigIslandModeCidr | undefined);
    private _podAddressCidrBlocks?;
    get podAddressCidrBlocks(): string[];
    set podAddressCidrBlocks(value: string[]);
    get podAddressCidrBlocksInput(): string[] | undefined;
    private _serviceAddressCidrBlocks?;
    get serviceAddressCidrBlocks(): string[];
    set serviceAddressCidrBlocks(value: string[]);
    get serviceAddressCidrBlocksInput(): string[] | undefined;
}
export interface GkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig {
    /**
    * Whether to enable multiple network interfaces for your pods.
    * When set network_config.advanced_networking is automatically
    * set to true.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#enabled GkeonpremBareMetalCluster#enabled}
    */
    readonly enabled?: boolean | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigToTerraform(struct?: GkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigOutputReference | GkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig): any;
export declare function gkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigToHclTerraform(struct?: GkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigOutputReference | GkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig): any;
export declare class GkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigOutputReference 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(): GkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    resetEnabled(): void;
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremBareMetalClusterNetworkConfigSrIovConfig {
    /**
    * Whether to install the SR-IOV operator.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#enabled GkeonpremBareMetalCluster#enabled}
    */
    readonly enabled?: boolean | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalClusterNetworkConfigSrIovConfigToTerraform(struct?: GkeonpremBareMetalClusterNetworkConfigSrIovConfigOutputReference | GkeonpremBareMetalClusterNetworkConfigSrIovConfig): any;
export declare function gkeonpremBareMetalClusterNetworkConfigSrIovConfigToHclTerraform(struct?: GkeonpremBareMetalClusterNetworkConfigSrIovConfigOutputReference | GkeonpremBareMetalClusterNetworkConfigSrIovConfig): any;
export declare class GkeonpremBareMetalClusterNetworkConfigSrIovConfigOutputReference 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(): GkeonpremBareMetalClusterNetworkConfigSrIovConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterNetworkConfigSrIovConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    resetEnabled(): void;
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremBareMetalClusterNetworkConfig {
    /**
    * Enables the use of advanced Anthos networking features, such as Bundled
    * Load Balancing with BGP or the egress NAT gateway.
    * Setting configuration for advanced networking features will automatically
    * set this flag.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#advanced_networking GkeonpremBareMetalCluster#advanced_networking}
    */
    readonly advancedNetworking?: boolean | cdktf.IResolvable;
    /**
    * island_mode_cidr block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#island_mode_cidr GkeonpremBareMetalCluster#island_mode_cidr}
    */
    readonly islandModeCidr?: GkeonpremBareMetalClusterNetworkConfigIslandModeCidr;
    /**
    * multiple_network_interfaces_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#multiple_network_interfaces_config GkeonpremBareMetalCluster#multiple_network_interfaces_config}
    */
    readonly multipleNetworkInterfacesConfig?: GkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig;
    /**
    * sr_iov_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#sr_iov_config GkeonpremBareMetalCluster#sr_iov_config}
    */
    readonly srIovConfig?: GkeonpremBareMetalClusterNetworkConfigSrIovConfig;
}
export declare function gkeonpremBareMetalClusterNetworkConfigToTerraform(struct?: GkeonpremBareMetalClusterNetworkConfigOutputReference | GkeonpremBareMetalClusterNetworkConfig): any;
export declare function gkeonpremBareMetalClusterNetworkConfigToHclTerraform(struct?: GkeonpremBareMetalClusterNetworkConfigOutputReference | GkeonpremBareMetalClusterNetworkConfig): any;
export declare class GkeonpremBareMetalClusterNetworkConfigOutputReference 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(): GkeonpremBareMetalClusterNetworkConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterNetworkConfig | undefined);
    private _advancedNetworking?;
    get advancedNetworking(): boolean | cdktf.IResolvable;
    set advancedNetworking(value: boolean | cdktf.IResolvable);
    resetAdvancedNetworking(): void;
    get advancedNetworkingInput(): boolean | cdktf.IResolvable | undefined;
    private _islandModeCidr;
    get islandModeCidr(): GkeonpremBareMetalClusterNetworkConfigIslandModeCidrOutputReference;
    putIslandModeCidr(value: GkeonpremBareMetalClusterNetworkConfigIslandModeCidr): void;
    resetIslandModeCidr(): void;
    get islandModeCidrInput(): GkeonpremBareMetalClusterNetworkConfigIslandModeCidr | undefined;
    private _multipleNetworkInterfacesConfig;
    get multipleNetworkInterfacesConfig(): GkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfigOutputReference;
    putMultipleNetworkInterfacesConfig(value: GkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig): void;
    resetMultipleNetworkInterfacesConfig(): void;
    get multipleNetworkInterfacesConfigInput(): GkeonpremBareMetalClusterNetworkConfigMultipleNetworkInterfacesConfig | undefined;
    private _srIovConfig;
    get srIovConfig(): GkeonpremBareMetalClusterNetworkConfigSrIovConfigOutputReference;
    putSrIovConfig(value: GkeonpremBareMetalClusterNetworkConfigSrIovConfig): void;
    resetSrIovConfig(): void;
    get srIovConfigInput(): GkeonpremBareMetalClusterNetworkConfigSrIovConfig | undefined;
}
export interface GkeonpremBareMetalClusterNodeAccessConfig {
    /**
    * LoginUser is the user name used to access node machines.
    * It defaults to "root" if not set.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#login_user GkeonpremBareMetalCluster#login_user}
    */
    readonly loginUser?: string;
}
export declare function gkeonpremBareMetalClusterNodeAccessConfigToTerraform(struct?: GkeonpremBareMetalClusterNodeAccessConfigOutputReference | GkeonpremBareMetalClusterNodeAccessConfig): any;
export declare function gkeonpremBareMetalClusterNodeAccessConfigToHclTerraform(struct?: GkeonpremBareMetalClusterNodeAccessConfigOutputReference | GkeonpremBareMetalClusterNodeAccessConfig): any;
export declare class GkeonpremBareMetalClusterNodeAccessConfigOutputReference 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(): GkeonpremBareMetalClusterNodeAccessConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterNodeAccessConfig | undefined);
    private _loginUser?;
    get loginUser(): string;
    set loginUser(value: string);
    resetLoginUser(): void;
    get loginUserInput(): string | undefined;
}
export interface GkeonpremBareMetalClusterNodeConfig {
    /**
    * The available runtimes that can be used to run containers in a Bare Metal User Cluster. Possible values: ["CONTAINER_RUNTIME_UNSPECIFIED", "DOCKER", "CONTAINERD"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#container_runtime GkeonpremBareMetalCluster#container_runtime}
    */
    readonly containerRuntime?: string;
    /**
    * The maximum number of pods a node can run. The size of the CIDR range
    * assigned to the node will be derived from this parameter.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#max_pods_per_node GkeonpremBareMetalCluster#max_pods_per_node}
    */
    readonly maxPodsPerNode?: number;
}
export declare function gkeonpremBareMetalClusterNodeConfigToTerraform(struct?: GkeonpremBareMetalClusterNodeConfigOutputReference | GkeonpremBareMetalClusterNodeConfig): any;
export declare function gkeonpremBareMetalClusterNodeConfigToHclTerraform(struct?: GkeonpremBareMetalClusterNodeConfigOutputReference | GkeonpremBareMetalClusterNodeConfig): any;
export declare class GkeonpremBareMetalClusterNodeConfigOutputReference 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(): GkeonpremBareMetalClusterNodeConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterNodeConfig | undefined);
    private _containerRuntime?;
    get containerRuntime(): string;
    set containerRuntime(value: string);
    resetContainerRuntime(): void;
    get containerRuntimeInput(): string | undefined;
    private _maxPodsPerNode?;
    get maxPodsPerNode(): number;
    set maxPodsPerNode(value: number);
    resetMaxPodsPerNode(): void;
    get maxPodsPerNodeInput(): number | undefined;
}
export interface GkeonpremBareMetalClusterOsEnvironmentConfig {
    /**
    * Whether the package repo should not be included when initializing
    * bare metal machines.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#package_repo_excluded GkeonpremBareMetalCluster#package_repo_excluded}
    */
    readonly packageRepoExcluded: boolean | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalClusterOsEnvironmentConfigToTerraform(struct?: GkeonpremBareMetalClusterOsEnvironmentConfigOutputReference | GkeonpremBareMetalClusterOsEnvironmentConfig): any;
export declare function gkeonpremBareMetalClusterOsEnvironmentConfigToHclTerraform(struct?: GkeonpremBareMetalClusterOsEnvironmentConfigOutputReference | GkeonpremBareMetalClusterOsEnvironmentConfig): any;
export declare class GkeonpremBareMetalClusterOsEnvironmentConfigOutputReference 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(): GkeonpremBareMetalClusterOsEnvironmentConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterOsEnvironmentConfig | undefined);
    private _packageRepoExcluded?;
    get packageRepoExcluded(): boolean | cdktf.IResolvable;
    set packageRepoExcluded(value: boolean | cdktf.IResolvable);
    get packageRepoExcludedInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremBareMetalClusterProxy {
    /**
    * A list of IPs, hostnames, and domains that should skip the proxy.
    * For example ["127.0.0.1", "example.com", ".corp", "localhost"].
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#no_proxy GkeonpremBareMetalCluster#no_proxy}
    */
    readonly noProxy?: string[];
    /**
    * Specifies the address of your proxy server.
    * For example: http://domain
    * WARNING: Do not provide credentials in the format
    * of http://(username:password@)domain these will be rejected by the server.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#uri GkeonpremBareMetalCluster#uri}
    */
    readonly uri: string;
}
export declare function gkeonpremBareMetalClusterProxyToTerraform(struct?: GkeonpremBareMetalClusterProxyOutputReference | GkeonpremBareMetalClusterProxy): any;
export declare function gkeonpremBareMetalClusterProxyToHclTerraform(struct?: GkeonpremBareMetalClusterProxyOutputReference | GkeonpremBareMetalClusterProxy): any;
export declare class GkeonpremBareMetalClusterProxyOutputReference 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(): GkeonpremBareMetalClusterProxy | undefined;
    set internalValue(value: GkeonpremBareMetalClusterProxy | undefined);
    private _noProxy?;
    get noProxy(): string[];
    set noProxy(value: string[]);
    resetNoProxy(): void;
    get noProxyInput(): string[] | undefined;
    private _uri?;
    get uri(): string;
    set uri(value: string);
    get uriInput(): string | undefined;
}
export interface GkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsers {
    /**
    * The name of the user, e.g. 'my-gcp-id@gmail.com'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#username GkeonpremBareMetalCluster#username}
    */
    readonly username: string;
}
export declare function gkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsersToTerraform(struct?: GkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsers | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsersToHclTerraform(struct?: GkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsers | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsersOutputReference 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(): GkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsers | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsers | cdktf.IResolvable | undefined);
    private _username?;
    get username(): string;
    set username(value: string);
    get usernameInput(): string | undefined;
}
export declare class GkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsers[] | 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): GkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsersOutputReference;
}
export interface GkeonpremBareMetalClusterSecurityConfigAuthorization {
    /**
    * admin_users block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#admin_users GkeonpremBareMetalCluster#admin_users}
    */
    readonly adminUsers: GkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsers[] | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalClusterSecurityConfigAuthorizationToTerraform(struct?: GkeonpremBareMetalClusterSecurityConfigAuthorizationOutputReference | GkeonpremBareMetalClusterSecurityConfigAuthorization): any;
export declare function gkeonpremBareMetalClusterSecurityConfigAuthorizationToHclTerraform(struct?: GkeonpremBareMetalClusterSecurityConfigAuthorizationOutputReference | GkeonpremBareMetalClusterSecurityConfigAuthorization): any;
export declare class GkeonpremBareMetalClusterSecurityConfigAuthorizationOutputReference 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(): GkeonpremBareMetalClusterSecurityConfigAuthorization | undefined;
    set internalValue(value: GkeonpremBareMetalClusterSecurityConfigAuthorization | undefined);
    private _adminUsers;
    get adminUsers(): GkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsersList;
    putAdminUsers(value: GkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsers[] | cdktf.IResolvable): void;
    get adminUsersInput(): cdktf.IResolvable | GkeonpremBareMetalClusterSecurityConfigAuthorizationAdminUsers[] | undefined;
}
export interface GkeonpremBareMetalClusterSecurityConfig {
    /**
    * authorization block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#authorization GkeonpremBareMetalCluster#authorization}
    */
    readonly authorization?: GkeonpremBareMetalClusterSecurityConfigAuthorization;
}
export declare function gkeonpremBareMetalClusterSecurityConfigToTerraform(struct?: GkeonpremBareMetalClusterSecurityConfigOutputReference | GkeonpremBareMetalClusterSecurityConfig): any;
export declare function gkeonpremBareMetalClusterSecurityConfigToHclTerraform(struct?: GkeonpremBareMetalClusterSecurityConfigOutputReference | GkeonpremBareMetalClusterSecurityConfig): any;
export declare class GkeonpremBareMetalClusterSecurityConfigOutputReference 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(): GkeonpremBareMetalClusterSecurityConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterSecurityConfig | undefined);
    private _authorization;
    get authorization(): GkeonpremBareMetalClusterSecurityConfigAuthorizationOutputReference;
    putAuthorization(value: GkeonpremBareMetalClusterSecurityConfigAuthorization): void;
    resetAuthorization(): void;
    get authorizationInput(): GkeonpremBareMetalClusterSecurityConfigAuthorization | undefined;
}
export interface GkeonpremBareMetalClusterStorageLvpNodeMountsConfig {
    /**
    * The host machine path.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#path GkeonpremBareMetalCluster#path}
    */
    readonly path: string;
    /**
    * The StorageClass name that PVs will be created with.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#storage_class GkeonpremBareMetalCluster#storage_class}
    */
    readonly storageClass: string;
}
export declare function gkeonpremBareMetalClusterStorageLvpNodeMountsConfigToTerraform(struct?: GkeonpremBareMetalClusterStorageLvpNodeMountsConfigOutputReference | GkeonpremBareMetalClusterStorageLvpNodeMountsConfig): any;
export declare function gkeonpremBareMetalClusterStorageLvpNodeMountsConfigToHclTerraform(struct?: GkeonpremBareMetalClusterStorageLvpNodeMountsConfigOutputReference | GkeonpremBareMetalClusterStorageLvpNodeMountsConfig): any;
export declare class GkeonpremBareMetalClusterStorageLvpNodeMountsConfigOutputReference 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(): GkeonpremBareMetalClusterStorageLvpNodeMountsConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterStorageLvpNodeMountsConfig | undefined);
    private _path?;
    get path(): string;
    set path(value: string);
    get pathInput(): string | undefined;
    private _storageClass?;
    get storageClass(): string;
    set storageClass(value: string);
    get storageClassInput(): string | undefined;
}
export interface GkeonpremBareMetalClusterStorageLvpShareConfigLvpConfig {
    /**
    * The host machine path.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#path GkeonpremBareMetalCluster#path}
    */
    readonly path: string;
    /**
    * The StorageClass name that PVs will be created with.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#storage_class GkeonpremBareMetalCluster#storage_class}
    */
    readonly storageClass: string;
}
export declare function gkeonpremBareMetalClusterStorageLvpShareConfigLvpConfigToTerraform(struct?: GkeonpremBareMetalClusterStorageLvpShareConfigLvpConfigOutputReference | GkeonpremBareMetalClusterStorageLvpShareConfigLvpConfig): any;
export declare function gkeonpremBareMetalClusterStorageLvpShareConfigLvpConfigToHclTerraform(struct?: GkeonpremBareMetalClusterStorageLvpShareConfigLvpConfigOutputReference | GkeonpremBareMetalClusterStorageLvpShareConfigLvpConfig): any;
export declare class GkeonpremBareMetalClusterStorageLvpShareConfigLvpConfigOutputReference 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(): GkeonpremBareMetalClusterStorageLvpShareConfigLvpConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterStorageLvpShareConfigLvpConfig | undefined);
    private _path?;
    get path(): string;
    set path(value: string);
    get pathInput(): string | undefined;
    private _storageClass?;
    get storageClass(): string;
    set storageClass(value: string);
    get storageClassInput(): string | undefined;
}
export interface GkeonpremBareMetalClusterStorageLvpShareConfig {
    /**
    * The number of subdirectories to create under path.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#shared_path_pv_count GkeonpremBareMetalCluster#shared_path_pv_count}
    */
    readonly sharedPathPvCount?: number;
    /**
    * lvp_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#lvp_config GkeonpremBareMetalCluster#lvp_config}
    */
    readonly lvpConfig: GkeonpremBareMetalClusterStorageLvpShareConfigLvpConfig;
}
export declare function gkeonpremBareMetalClusterStorageLvpShareConfigToTerraform(struct?: GkeonpremBareMetalClusterStorageLvpShareConfigOutputReference | GkeonpremBareMetalClusterStorageLvpShareConfig): any;
export declare function gkeonpremBareMetalClusterStorageLvpShareConfigToHclTerraform(struct?: GkeonpremBareMetalClusterStorageLvpShareConfigOutputReference | GkeonpremBareMetalClusterStorageLvpShareConfig): any;
export declare class GkeonpremBareMetalClusterStorageLvpShareConfigOutputReference 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(): GkeonpremBareMetalClusterStorageLvpShareConfig | undefined;
    set internalValue(value: GkeonpremBareMetalClusterStorageLvpShareConfig | undefined);
    private _sharedPathPvCount?;
    get sharedPathPvCount(): number;
    set sharedPathPvCount(value: number);
    resetSharedPathPvCount(): void;
    get sharedPathPvCountInput(): number | undefined;
    private _lvpConfig;
    get lvpConfig(): GkeonpremBareMetalClusterStorageLvpShareConfigLvpConfigOutputReference;
    putLvpConfig(value: GkeonpremBareMetalClusterStorageLvpShareConfigLvpConfig): void;
    get lvpConfigInput(): GkeonpremBareMetalClusterStorageLvpShareConfigLvpConfig | undefined;
}
export interface GkeonpremBareMetalClusterStorage {
    /**
    * lvp_node_mounts_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#lvp_node_mounts_config GkeonpremBareMetalCluster#lvp_node_mounts_config}
    */
    readonly lvpNodeMountsConfig: GkeonpremBareMetalClusterStorageLvpNodeMountsConfig;
    /**
    * lvp_share_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#lvp_share_config GkeonpremBareMetalCluster#lvp_share_config}
    */
    readonly lvpShareConfig: GkeonpremBareMetalClusterStorageLvpShareConfig;
}
export declare function gkeonpremBareMetalClusterStorageToTerraform(struct?: GkeonpremBareMetalClusterStorageOutputReference | GkeonpremBareMetalClusterStorage): any;
export declare function gkeonpremBareMetalClusterStorageToHclTerraform(struct?: GkeonpremBareMetalClusterStorageOutputReference | GkeonpremBareMetalClusterStorage): any;
export declare class GkeonpremBareMetalClusterStorageOutputReference 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(): GkeonpremBareMetalClusterStorage | undefined;
    set internalValue(value: GkeonpremBareMetalClusterStorage | undefined);
    private _lvpNodeMountsConfig;
    get lvpNodeMountsConfig(): GkeonpremBareMetalClusterStorageLvpNodeMountsConfigOutputReference;
    putLvpNodeMountsConfig(value: GkeonpremBareMetalClusterStorageLvpNodeMountsConfig): void;
    get lvpNodeMountsConfigInput(): GkeonpremBareMetalClusterStorageLvpNodeMountsConfig | undefined;
    private _lvpShareConfig;
    get lvpShareConfig(): GkeonpremBareMetalClusterStorageLvpShareConfigOutputReference;
    putLvpShareConfig(value: GkeonpremBareMetalClusterStorageLvpShareConfig): void;
    get lvpShareConfigInput(): GkeonpremBareMetalClusterStorageLvpShareConfig | undefined;
}
export interface GkeonpremBareMetalClusterTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#create GkeonpremBareMetalCluster#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#delete GkeonpremBareMetalCluster#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#update GkeonpremBareMetalCluster#update}
    */
    readonly update?: string;
}
export declare function gkeonpremBareMetalClusterTimeoutsToTerraform(struct?: GkeonpremBareMetalClusterTimeouts | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalClusterTimeoutsToHclTerraform(struct?: GkeonpremBareMetalClusterTimeouts | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalClusterTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): GkeonpremBareMetalClusterTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalClusterTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
export interface GkeonpremBareMetalClusterUpgradePolicy {
    /**
    * Specifies which upgrade policy to use. Possible values: ["SERIAL", "CONCURRENT"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#policy GkeonpremBareMetalCluster#policy}
    */
    readonly policy?: string;
}
export declare function gkeonpremBareMetalClusterUpgradePolicyToTerraform(struct?: GkeonpremBareMetalClusterUpgradePolicyOutputReference | GkeonpremBareMetalClusterUpgradePolicy): any;
export declare function gkeonpremBareMetalClusterUpgradePolicyToHclTerraform(struct?: GkeonpremBareMetalClusterUpgradePolicyOutputReference | GkeonpremBareMetalClusterUpgradePolicy): any;
export declare class GkeonpremBareMetalClusterUpgradePolicyOutputReference 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(): GkeonpremBareMetalClusterUpgradePolicy | undefined;
    set internalValue(value: GkeonpremBareMetalClusterUpgradePolicy | undefined);
    private _policy?;
    get policy(): string;
    set policy(value: string);
    resetPolicy(): void;
    get policyInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster google_gkeonprem_bare_metal_cluster}
*/
export declare class GkeonpremBareMetalCluster extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_gkeonprem_bare_metal_cluster";
    /**
    * Generates CDKTF code for importing a GkeonpremBareMetalCluster resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the GkeonpremBareMetalCluster to import
    * @param importFromId The id of the existing GkeonpremBareMetalCluster that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the GkeonpremBareMetalCluster to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_cluster google_gkeonprem_bare_metal_cluster} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options GkeonpremBareMetalClusterConfig
    */
    constructor(scope: Construct, id: string, config: GkeonpremBareMetalClusterConfig);
    private _adminClusterMembership?;
    get adminClusterMembership(): string;
    set adminClusterMembership(value: string);
    get adminClusterMembershipInput(): string | undefined;
    private _annotations?;
    get annotations(): {
        [key: string]: string;
    };
    set annotations(value: {
        [key: string]: string;
    });
    resetAnnotations(): void;
    get annotationsInput(): {
        [key: string]: string;
    } | undefined;
    private _bareMetalVersion?;
    get bareMetalVersion(): string;
    set bareMetalVersion(value: string);
    get bareMetalVersionInput(): string | undefined;
    get createTime(): string;
    get deleteTime(): string;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _effectiveAnnotations;
    get effectiveAnnotations(): cdktf.StringMap;
    get endpoint(): string;
    get etag(): string;
    private _fleet;
    get fleet(): GkeonpremBareMetalClusterFleetList;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get localName(): string;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    get reconciling(): cdktf.IResolvable;
    get state(): string;
    private _status;
    get status(): GkeonpremBareMetalClusterStatusList;
    get uid(): string;
    get updateTime(): string;
    private _validationCheck;
    get validationCheck(): GkeonpremBareMetalClusterValidationCheckList;
    private _binaryAuthorization;
    get binaryAuthorization(): GkeonpremBareMetalClusterBinaryAuthorizationOutputReference;
    putBinaryAuthorization(value: GkeonpremBareMetalClusterBinaryAuthorization): void;
    resetBinaryAuthorization(): void;
    get binaryAuthorizationInput(): GkeonpremBareMetalClusterBinaryAuthorization | undefined;
    private _clusterOperations;
    get clusterOperations(): GkeonpremBareMetalClusterClusterOperationsOutputReference;
    putClusterOperations(value: GkeonpremBareMetalClusterClusterOperations): void;
    resetClusterOperations(): void;
    get clusterOperationsInput(): GkeonpremBareMetalClusterClusterOperations | undefined;
    private _controlPlane;
    get controlPlane(): GkeonpremBareMetalClusterControlPlaneOutputReference;
    putControlPlane(value: GkeonpremBareMetalClusterControlPlane): void;
    get controlPlaneInput(): GkeonpremBareMetalClusterControlPlane | undefined;
    private _loadBalancer;
    get loadBalancer(): GkeonpremBareMetalClusterLoadBalancerOutputReference;
    putLoadBalancer(value: GkeonpremBareMetalClusterLoadBalancer): void;
    get loadBalancerInput(): GkeonpremBareMetalClusterLoadBalancer | undefined;
    private _maintenanceConfig;
    get maintenanceConfig(): GkeonpremBareMetalClusterMaintenanceConfigOutputReference;
    putMaintenanceConfig(value: GkeonpremBareMetalClusterMaintenanceConfig): void;
    resetMaintenanceConfig(): void;
    get maintenanceConfigInput(): GkeonpremBareMetalClusterMaintenanceConfig | undefined;
    private _networkConfig;
    get networkConfig(): GkeonpremBareMetalClusterNetworkConfigOutputReference;
    putNetworkConfig(value: GkeonpremBareMetalClusterNetworkConfig): void;
    get networkConfigInput(): GkeonpremBareMetalClusterNetworkConfig | undefined;
    private _nodeAccessConfig;
    get nodeAccessConfig(): GkeonpremBareMetalClusterNodeAccessConfigOutputReference;
    putNodeAccessConfig(value: GkeonpremBareMetalClusterNodeAccessConfig): void;
    resetNodeAccessConfig(): void;
    get nodeAccessConfigInput(): GkeonpremBareMetalClusterNodeAccessConfig | undefined;
    private _nodeConfig;
    get nodeConfig(): GkeonpremBareMetalClusterNodeConfigOutputReference;
    putNodeConfig(value: GkeonpremBareMetalClusterNodeConfig): void;
    resetNodeConfig(): void;
    get nodeConfigInput(): GkeonpremBareMetalClusterNodeConfig | undefined;
    private _osEnvironmentConfig;
    get osEnvironmentConfig(): GkeonpremBareMetalClusterOsEnvironmentConfigOutputReference;
    putOsEnvironmentConfig(value: GkeonpremBareMetalClusterOsEnvironmentConfig): void;
    resetOsEnvironmentConfig(): void;
    get osEnvironmentConfigInput(): GkeonpremBareMetalClusterOsEnvironmentConfig | undefined;
    private _proxy;
    get proxy(): GkeonpremBareMetalClusterProxyOutputReference;
    putProxy(value: GkeonpremBareMetalClusterProxy): void;
    resetProxy(): void;
    get proxyInput(): GkeonpremBareMetalClusterProxy | undefined;
    private _securityConfig;
    get securityConfig(): GkeonpremBareMetalClusterSecurityConfigOutputReference;
    putSecurityConfig(value: GkeonpremBareMetalClusterSecurityConfig): void;
    resetSecurityConfig(): void;
    get securityConfigInput(): GkeonpremBareMetalClusterSecurityConfig | undefined;
    private _storage;
    get storage(): GkeonpremBareMetalClusterStorageOutputReference;
    putStorage(value: GkeonpremBareMetalClusterStorage): void;
    get storageInput(): GkeonpremBareMetalClusterStorage | undefined;
    private _timeouts;
    get timeouts(): GkeonpremBareMetalClusterTimeoutsOutputReference;
    putTimeouts(value: GkeonpremBareMetalClusterTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | GkeonpremBareMetalClusterTimeouts | undefined;
    private _upgradePolicy;
    get upgradePolicy(): GkeonpremBareMetalClusterUpgradePolicyOutputReference;
    putUpgradePolicy(value: GkeonpremBareMetalClusterUpgradePolicy): void;
    resetUpgradePolicy(): void;
    get upgradePolicyInput(): GkeonpremBareMetalClusterUpgradePolicy | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
