/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface GkeonpremBareMetalAdminClusterConfig extends cdktf.TerraformMetaArguments {
    /**
    * Annotations on the Bare Metal Admin 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_admin_cluster#annotations GkeonpremBareMetalAdminCluster#annotations}
    */
    readonly annotations?: {
        [key: string]: string;
    };
    /**
    * A human readable description of this Bare Metal Admin Cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#bare_metal_version GkeonpremBareMetalAdminCluster#bare_metal_version}
    */
    readonly bareMetalVersion?: string;
    /**
    * A human readable description of this Bare Metal Admin Cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#description GkeonpremBareMetalAdminCluster#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#id GkeonpremBareMetalAdminCluster#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_admin_cluster#location GkeonpremBareMetalAdminCluster#location}
    */
    readonly location: string;
    /**
    * The bare metal admin cluster name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#name GkeonpremBareMetalAdminCluster#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#project GkeonpremBareMetalAdminCluster#project}
    */
    readonly project?: string;
    /**
    * cluster_operations block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#cluster_operations GkeonpremBareMetalAdminCluster#cluster_operations}
    */
    readonly clusterOperations?: GkeonpremBareMetalAdminClusterClusterOperations;
    /**
    * control_plane block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#control_plane GkeonpremBareMetalAdminCluster#control_plane}
    */
    readonly controlPlane?: GkeonpremBareMetalAdminClusterControlPlane;
    /**
    * load_balancer block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#load_balancer GkeonpremBareMetalAdminCluster#load_balancer}
    */
    readonly loadBalancer?: GkeonpremBareMetalAdminClusterLoadBalancer;
    /**
    * maintenance_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#maintenance_config GkeonpremBareMetalAdminCluster#maintenance_config}
    */
    readonly maintenanceConfig?: GkeonpremBareMetalAdminClusterMaintenanceConfig;
    /**
    * network_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#network_config GkeonpremBareMetalAdminCluster#network_config}
    */
    readonly networkConfig?: GkeonpremBareMetalAdminClusterNetworkConfig;
    /**
    * node_access_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#node_access_config GkeonpremBareMetalAdminCluster#node_access_config}
    */
    readonly nodeAccessConfig?: GkeonpremBareMetalAdminClusterNodeAccessConfig;
    /**
    * node_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#node_config GkeonpremBareMetalAdminCluster#node_config}
    */
    readonly nodeConfig?: GkeonpremBareMetalAdminClusterNodeConfig;
    /**
    * proxy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#proxy GkeonpremBareMetalAdminCluster#proxy}
    */
    readonly proxy?: GkeonpremBareMetalAdminClusterProxy;
    /**
    * security_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#security_config GkeonpremBareMetalAdminCluster#security_config}
    */
    readonly securityConfig?: GkeonpremBareMetalAdminClusterSecurityConfig;
    /**
    * storage block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#storage GkeonpremBareMetalAdminCluster#storage}
    */
    readonly storage?: GkeonpremBareMetalAdminClusterStorage;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#timeouts GkeonpremBareMetalAdminCluster#timeouts}
    */
    readonly timeouts?: GkeonpremBareMetalAdminClusterTimeouts;
}
export interface GkeonpremBareMetalAdminClusterFleet {
}
export declare function gkeonpremBareMetalAdminClusterFleetToTerraform(struct?: GkeonpremBareMetalAdminClusterFleet): any;
export declare function gkeonpremBareMetalAdminClusterFleetToHclTerraform(struct?: GkeonpremBareMetalAdminClusterFleet): any;
export declare class GkeonpremBareMetalAdminClusterFleetOutputReference 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(): GkeonpremBareMetalAdminClusterFleet | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterFleet | undefined);
    get membership(): string;
}
export declare class GkeonpremBareMetalAdminClusterFleetList 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): GkeonpremBareMetalAdminClusterFleetOutputReference;
}
export interface GkeonpremBareMetalAdminClusterStatusConditions {
}
export declare function gkeonpremBareMetalAdminClusterStatusConditionsToTerraform(struct?: GkeonpremBareMetalAdminClusterStatusConditions): any;
export declare function gkeonpremBareMetalAdminClusterStatusConditionsToHclTerraform(struct?: GkeonpremBareMetalAdminClusterStatusConditions): any;
export declare class GkeonpremBareMetalAdminClusterStatusConditionsOutputReference 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(): GkeonpremBareMetalAdminClusterStatusConditions | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterStatusConditions | undefined);
    get lastTransitionTime(): string;
    get message(): string;
    get reason(): string;
    get state(): string;
    get type(): string;
}
export declare class GkeonpremBareMetalAdminClusterStatusConditionsList 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): GkeonpremBareMetalAdminClusterStatusConditionsOutputReference;
}
export interface GkeonpremBareMetalAdminClusterStatus {
}
export declare function gkeonpremBareMetalAdminClusterStatusToTerraform(struct?: GkeonpremBareMetalAdminClusterStatus): any;
export declare function gkeonpremBareMetalAdminClusterStatusToHclTerraform(struct?: GkeonpremBareMetalAdminClusterStatus): any;
export declare class GkeonpremBareMetalAdminClusterStatusOutputReference 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(): GkeonpremBareMetalAdminClusterStatus | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterStatus | undefined);
    private _conditions;
    get conditions(): GkeonpremBareMetalAdminClusterStatusConditionsList;
    get errorMessage(): string;
}
export declare class GkeonpremBareMetalAdminClusterStatusList 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): GkeonpremBareMetalAdminClusterStatusOutputReference;
}
export interface GkeonpremBareMetalAdminClusterValidationCheckStatusResult {
}
export declare function gkeonpremBareMetalAdminClusterValidationCheckStatusResultToTerraform(struct?: GkeonpremBareMetalAdminClusterValidationCheckStatusResult): any;
export declare function gkeonpremBareMetalAdminClusterValidationCheckStatusResultToHclTerraform(struct?: GkeonpremBareMetalAdminClusterValidationCheckStatusResult): any;
export declare class GkeonpremBareMetalAdminClusterValidationCheckStatusResultOutputReference 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(): GkeonpremBareMetalAdminClusterValidationCheckStatusResult | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterValidationCheckStatusResult | undefined);
    get category(): string;
    get description(): string;
    get details(): string;
    get options(): string;
    get reason(): string;
}
export declare class GkeonpremBareMetalAdminClusterValidationCheckStatusResultList 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): GkeonpremBareMetalAdminClusterValidationCheckStatusResultOutputReference;
}
export interface GkeonpremBareMetalAdminClusterValidationCheckStatus {
}
export declare function gkeonpremBareMetalAdminClusterValidationCheckStatusToTerraform(struct?: GkeonpremBareMetalAdminClusterValidationCheckStatus): any;
export declare function gkeonpremBareMetalAdminClusterValidationCheckStatusToHclTerraform(struct?: GkeonpremBareMetalAdminClusterValidationCheckStatus): any;
export declare class GkeonpremBareMetalAdminClusterValidationCheckStatusOutputReference 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(): GkeonpremBareMetalAdminClusterValidationCheckStatus | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterValidationCheckStatus | undefined);
    private _result;
    get result(): GkeonpremBareMetalAdminClusterValidationCheckStatusResultList;
}
export declare class GkeonpremBareMetalAdminClusterValidationCheckStatusList 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): GkeonpremBareMetalAdminClusterValidationCheckStatusOutputReference;
}
export interface GkeonpremBareMetalAdminClusterValidationCheck {
}
export declare function gkeonpremBareMetalAdminClusterValidationCheckToTerraform(struct?: GkeonpremBareMetalAdminClusterValidationCheck): any;
export declare function gkeonpremBareMetalAdminClusterValidationCheckToHclTerraform(struct?: GkeonpremBareMetalAdminClusterValidationCheck): any;
export declare class GkeonpremBareMetalAdminClusterValidationCheckOutputReference 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(): GkeonpremBareMetalAdminClusterValidationCheck | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterValidationCheck | undefined);
    get options(): string;
    get scenario(): string;
    private _status;
    get status(): GkeonpremBareMetalAdminClusterValidationCheckStatusList;
}
export declare class GkeonpremBareMetalAdminClusterValidationCheckList 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): GkeonpremBareMetalAdminClusterValidationCheckOutputReference;
}
export interface GkeonpremBareMetalAdminClusterClusterOperations {
    /**
    * 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_admin_cluster#enable_application_logs GkeonpremBareMetalAdminCluster#enable_application_logs}
    */
    readonly enableApplicationLogs?: boolean | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalAdminClusterClusterOperationsToTerraform(struct?: GkeonpremBareMetalAdminClusterClusterOperationsOutputReference | GkeonpremBareMetalAdminClusterClusterOperations): any;
export declare function gkeonpremBareMetalAdminClusterClusterOperationsToHclTerraform(struct?: GkeonpremBareMetalAdminClusterClusterOperationsOutputReference | GkeonpremBareMetalAdminClusterClusterOperations): any;
export declare class GkeonpremBareMetalAdminClusterClusterOperationsOutputReference 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(): GkeonpremBareMetalAdminClusterClusterOperations | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterClusterOperations | undefined);
    private _enableApplicationLogs?;
    get enableApplicationLogs(): boolean | cdktf.IResolvable;
    set enableApplicationLogs(value: boolean | cdktf.IResolvable);
    resetEnableApplicationLogs(): void;
    get enableApplicationLogsInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremBareMetalAdminClusterControlPlaneApiServerArgs {
    /**
    * 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_admin_cluster#argument GkeonpremBareMetalAdminCluster#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_admin_cluster#value GkeonpremBareMetalAdminCluster#value}
    */
    readonly value: string;
}
export declare function gkeonpremBareMetalAdminClusterControlPlaneApiServerArgsToTerraform(struct?: GkeonpremBareMetalAdminClusterControlPlaneApiServerArgs | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalAdminClusterControlPlaneApiServerArgsToHclTerraform(struct?: GkeonpremBareMetalAdminClusterControlPlaneApiServerArgs | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalAdminClusterControlPlaneApiServerArgsOutputReference 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(): GkeonpremBareMetalAdminClusterControlPlaneApiServerArgs | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterControlPlaneApiServerArgs | 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 GkeonpremBareMetalAdminClusterControlPlaneApiServerArgsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalAdminClusterControlPlaneApiServerArgs[] | 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): GkeonpremBareMetalAdminClusterControlPlaneApiServerArgsOutputReference;
}
export interface GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs {
    /**
    * 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_admin_cluster#labels GkeonpremBareMetalAdminCluster#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_admin_cluster#node_ip GkeonpremBareMetalAdminCluster#node_ip}
    */
    readonly nodeIp?: string;
}
export declare function gkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigsToTerraform(struct?: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigsToHclTerraform(struct?: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigsOutputReference 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(): GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs | 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 GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs[] | 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): GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigsOutputReference;
}
export interface GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints {
    /**
    * 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_admin_cluster#effect GkeonpremBareMetalAdminCluster#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_admin_cluster#key GkeonpremBareMetalAdminCluster#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_admin_cluster#value GkeonpremBareMetalAdminCluster#value}
    */
    readonly value?: string;
}
export declare function gkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintsToTerraform(struct?: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintsToHclTerraform(struct?: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintsOutputReference 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(): GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints | 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 GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints[] | 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): GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintsOutputReference;
}
export interface GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig {
    /**
    * 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_admin_cluster#labels GkeonpremBareMetalAdminCluster#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_admin_cluster#operating_system GkeonpremBareMetalAdminCluster#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_admin_cluster#node_configs GkeonpremBareMetalAdminCluster#node_configs}
    */
    readonly nodeConfigs?: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs[] | cdktf.IResolvable;
    /**
    * taints block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#taints GkeonpremBareMetalAdminCluster#taints}
    */
    readonly taints?: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints[] | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigToTerraform(struct?: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigOutputReference | GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig): any;
export declare function gkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigToHclTerraform(struct?: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigOutputReference | GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig): any;
export declare class GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigOutputReference 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(): GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig | 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(): GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigsList;
    putNodeConfigs(value: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs[] | cdktf.IResolvable): void;
    resetNodeConfigs(): void;
    get nodeConfigsInput(): cdktf.IResolvable | GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigs[] | undefined;
    private _taints;
    get taints(): GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaintsList;
    putTaints(value: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints[] | cdktf.IResolvable): void;
    resetTaints(): void;
    get taintsInput(): cdktf.IResolvable | GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigTaints[] | undefined;
}
export interface GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfig {
    /**
    * node_pool_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#node_pool_config GkeonpremBareMetalAdminCluster#node_pool_config}
    */
    readonly nodePoolConfig: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig;
}
export declare function gkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigToTerraform(struct?: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigOutputReference | GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfig): any;
export declare function gkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigToHclTerraform(struct?: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigOutputReference | GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfig): any;
export declare class GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigOutputReference 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(): GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfig | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfig | undefined);
    private _nodePoolConfig;
    get nodePoolConfig(): GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigOutputReference;
    putNodePoolConfig(value: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig): void;
    get nodePoolConfigInput(): GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig | undefined;
}
export interface GkeonpremBareMetalAdminClusterControlPlane {
    /**
    * api_server_args block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#api_server_args GkeonpremBareMetalAdminCluster#api_server_args}
    */
    readonly apiServerArgs?: GkeonpremBareMetalAdminClusterControlPlaneApiServerArgs[] | 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_admin_cluster#control_plane_node_pool_config GkeonpremBareMetalAdminCluster#control_plane_node_pool_config}
    */
    readonly controlPlaneNodePoolConfig: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfig;
}
export declare function gkeonpremBareMetalAdminClusterControlPlaneToTerraform(struct?: GkeonpremBareMetalAdminClusterControlPlaneOutputReference | GkeonpremBareMetalAdminClusterControlPlane): any;
export declare function gkeonpremBareMetalAdminClusterControlPlaneToHclTerraform(struct?: GkeonpremBareMetalAdminClusterControlPlaneOutputReference | GkeonpremBareMetalAdminClusterControlPlane): any;
export declare class GkeonpremBareMetalAdminClusterControlPlaneOutputReference 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(): GkeonpremBareMetalAdminClusterControlPlane | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterControlPlane | undefined);
    private _apiServerArgs;
    get apiServerArgs(): GkeonpremBareMetalAdminClusterControlPlaneApiServerArgsList;
    putApiServerArgs(value: GkeonpremBareMetalAdminClusterControlPlaneApiServerArgs[] | cdktf.IResolvable): void;
    resetApiServerArgs(): void;
    get apiServerArgsInput(): cdktf.IResolvable | GkeonpremBareMetalAdminClusterControlPlaneApiServerArgs[] | undefined;
    private _controlPlaneNodePoolConfig;
    get controlPlaneNodePoolConfig(): GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigOutputReference;
    putControlPlaneNodePoolConfig(value: GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfig): void;
    get controlPlaneNodePoolConfigInput(): GkeonpremBareMetalAdminClusterControlPlaneControlPlaneNodePoolConfig | undefined;
}
export interface GkeonpremBareMetalAdminClusterLoadBalancerManualLbConfig {
    /**
    * 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_admin_cluster#enabled GkeonpremBareMetalAdminCluster#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalAdminClusterLoadBalancerManualLbConfigToTerraform(struct?: GkeonpremBareMetalAdminClusterLoadBalancerManualLbConfigOutputReference | GkeonpremBareMetalAdminClusterLoadBalancerManualLbConfig): any;
export declare function gkeonpremBareMetalAdminClusterLoadBalancerManualLbConfigToHclTerraform(struct?: GkeonpremBareMetalAdminClusterLoadBalancerManualLbConfigOutputReference | GkeonpremBareMetalAdminClusterLoadBalancerManualLbConfig): any;
export declare class GkeonpremBareMetalAdminClusterLoadBalancerManualLbConfigOutputReference 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(): GkeonpremBareMetalAdminClusterLoadBalancerManualLbConfig | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterLoadBalancerManualLbConfig | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface GkeonpremBareMetalAdminClusterLoadBalancerPortConfig {
    /**
    * 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_admin_cluster#control_plane_load_balancer_port GkeonpremBareMetalAdminCluster#control_plane_load_balancer_port}
    */
    readonly controlPlaneLoadBalancerPort: number;
}
export declare function gkeonpremBareMetalAdminClusterLoadBalancerPortConfigToTerraform(struct?: GkeonpremBareMetalAdminClusterLoadBalancerPortConfigOutputReference | GkeonpremBareMetalAdminClusterLoadBalancerPortConfig): any;
export declare function gkeonpremBareMetalAdminClusterLoadBalancerPortConfigToHclTerraform(struct?: GkeonpremBareMetalAdminClusterLoadBalancerPortConfigOutputReference | GkeonpremBareMetalAdminClusterLoadBalancerPortConfig): any;
export declare class GkeonpremBareMetalAdminClusterLoadBalancerPortConfigOutputReference 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(): GkeonpremBareMetalAdminClusterLoadBalancerPortConfig | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterLoadBalancerPortConfig | undefined);
    private _controlPlaneLoadBalancerPort?;
    get controlPlaneLoadBalancerPort(): number;
    set controlPlaneLoadBalancerPort(value: number);
    get controlPlaneLoadBalancerPortInput(): number | undefined;
}
export interface GkeonpremBareMetalAdminClusterLoadBalancerVipConfig {
    /**
    * The VIP which you previously set aside for the Kubernetes API of this Bare Metal Admin Cluster.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#control_plane_vip GkeonpremBareMetalAdminCluster#control_plane_vip}
    */
    readonly controlPlaneVip: string;
}
export declare function gkeonpremBareMetalAdminClusterLoadBalancerVipConfigToTerraform(struct?: GkeonpremBareMetalAdminClusterLoadBalancerVipConfigOutputReference | GkeonpremBareMetalAdminClusterLoadBalancerVipConfig): any;
export declare function gkeonpremBareMetalAdminClusterLoadBalancerVipConfigToHclTerraform(struct?: GkeonpremBareMetalAdminClusterLoadBalancerVipConfigOutputReference | GkeonpremBareMetalAdminClusterLoadBalancerVipConfig): any;
export declare class GkeonpremBareMetalAdminClusterLoadBalancerVipConfigOutputReference 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(): GkeonpremBareMetalAdminClusterLoadBalancerVipConfig | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterLoadBalancerVipConfig | undefined);
    private _controlPlaneVip?;
    get controlPlaneVip(): string;
    set controlPlaneVip(value: string);
    get controlPlaneVipInput(): string | undefined;
}
export interface GkeonpremBareMetalAdminClusterLoadBalancer {
    /**
    * manual_lb_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#manual_lb_config GkeonpremBareMetalAdminCluster#manual_lb_config}
    */
    readonly manualLbConfig?: GkeonpremBareMetalAdminClusterLoadBalancerManualLbConfig;
    /**
    * port_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#port_config GkeonpremBareMetalAdminCluster#port_config}
    */
    readonly portConfig: GkeonpremBareMetalAdminClusterLoadBalancerPortConfig;
    /**
    * vip_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#vip_config GkeonpremBareMetalAdminCluster#vip_config}
    */
    readonly vipConfig: GkeonpremBareMetalAdminClusterLoadBalancerVipConfig;
}
export declare function gkeonpremBareMetalAdminClusterLoadBalancerToTerraform(struct?: GkeonpremBareMetalAdminClusterLoadBalancerOutputReference | GkeonpremBareMetalAdminClusterLoadBalancer): any;
export declare function gkeonpremBareMetalAdminClusterLoadBalancerToHclTerraform(struct?: GkeonpremBareMetalAdminClusterLoadBalancerOutputReference | GkeonpremBareMetalAdminClusterLoadBalancer): any;
export declare class GkeonpremBareMetalAdminClusterLoadBalancerOutputReference 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(): GkeonpremBareMetalAdminClusterLoadBalancer | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterLoadBalancer | undefined);
    private _manualLbConfig;
    get manualLbConfig(): GkeonpremBareMetalAdminClusterLoadBalancerManualLbConfigOutputReference;
    putManualLbConfig(value: GkeonpremBareMetalAdminClusterLoadBalancerManualLbConfig): void;
    resetManualLbConfig(): void;
    get manualLbConfigInput(): GkeonpremBareMetalAdminClusterLoadBalancerManualLbConfig | undefined;
    private _portConfig;
    get portConfig(): GkeonpremBareMetalAdminClusterLoadBalancerPortConfigOutputReference;
    putPortConfig(value: GkeonpremBareMetalAdminClusterLoadBalancerPortConfig): void;
    get portConfigInput(): GkeonpremBareMetalAdminClusterLoadBalancerPortConfig | undefined;
    private _vipConfig;
    get vipConfig(): GkeonpremBareMetalAdminClusterLoadBalancerVipConfigOutputReference;
    putVipConfig(value: GkeonpremBareMetalAdminClusterLoadBalancerVipConfig): void;
    get vipConfigInput(): GkeonpremBareMetalAdminClusterLoadBalancerVipConfig | undefined;
}
export interface GkeonpremBareMetalAdminClusterMaintenanceConfig {
    /**
    * 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_admin_cluster#maintenance_address_cidr_blocks GkeonpremBareMetalAdminCluster#maintenance_address_cidr_blocks}
    */
    readonly maintenanceAddressCidrBlocks: string[];
}
export declare function gkeonpremBareMetalAdminClusterMaintenanceConfigToTerraform(struct?: GkeonpremBareMetalAdminClusterMaintenanceConfigOutputReference | GkeonpremBareMetalAdminClusterMaintenanceConfig): any;
export declare function gkeonpremBareMetalAdminClusterMaintenanceConfigToHclTerraform(struct?: GkeonpremBareMetalAdminClusterMaintenanceConfigOutputReference | GkeonpremBareMetalAdminClusterMaintenanceConfig): any;
export declare class GkeonpremBareMetalAdminClusterMaintenanceConfigOutputReference 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(): GkeonpremBareMetalAdminClusterMaintenanceConfig | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterMaintenanceConfig | undefined);
    private _maintenanceAddressCidrBlocks?;
    get maintenanceAddressCidrBlocks(): string[];
    set maintenanceAddressCidrBlocks(value: string[]);
    get maintenanceAddressCidrBlocksInput(): string[] | undefined;
}
export interface GkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidr {
    /**
    * 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_admin_cluster#pod_address_cidr_blocks GkeonpremBareMetalAdminCluster#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_admin_cluster#service_address_cidr_blocks GkeonpremBareMetalAdminCluster#service_address_cidr_blocks}
    */
    readonly serviceAddressCidrBlocks: string[];
}
export declare function gkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidrToTerraform(struct?: GkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidrOutputReference | GkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidr): any;
export declare function gkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidrToHclTerraform(struct?: GkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidrOutputReference | GkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidr): any;
export declare class GkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidrOutputReference 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(): GkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidr | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidr | 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 GkeonpremBareMetalAdminClusterNetworkConfig {
    /**
    * island_mode_cidr block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#island_mode_cidr GkeonpremBareMetalAdminCluster#island_mode_cidr}
    */
    readonly islandModeCidr?: GkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidr;
}
export declare function gkeonpremBareMetalAdminClusterNetworkConfigToTerraform(struct?: GkeonpremBareMetalAdminClusterNetworkConfigOutputReference | GkeonpremBareMetalAdminClusterNetworkConfig): any;
export declare function gkeonpremBareMetalAdminClusterNetworkConfigToHclTerraform(struct?: GkeonpremBareMetalAdminClusterNetworkConfigOutputReference | GkeonpremBareMetalAdminClusterNetworkConfig): any;
export declare class GkeonpremBareMetalAdminClusterNetworkConfigOutputReference 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(): GkeonpremBareMetalAdminClusterNetworkConfig | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterNetworkConfig | undefined);
    private _islandModeCidr;
    get islandModeCidr(): GkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidrOutputReference;
    putIslandModeCidr(value: GkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidr): void;
    resetIslandModeCidr(): void;
    get islandModeCidrInput(): GkeonpremBareMetalAdminClusterNetworkConfigIslandModeCidr | undefined;
}
export interface GkeonpremBareMetalAdminClusterNodeAccessConfig {
    /**
    * 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_admin_cluster#login_user GkeonpremBareMetalAdminCluster#login_user}
    */
    readonly loginUser?: string;
}
export declare function gkeonpremBareMetalAdminClusterNodeAccessConfigToTerraform(struct?: GkeonpremBareMetalAdminClusterNodeAccessConfigOutputReference | GkeonpremBareMetalAdminClusterNodeAccessConfig): any;
export declare function gkeonpremBareMetalAdminClusterNodeAccessConfigToHclTerraform(struct?: GkeonpremBareMetalAdminClusterNodeAccessConfigOutputReference | GkeonpremBareMetalAdminClusterNodeAccessConfig): any;
export declare class GkeonpremBareMetalAdminClusterNodeAccessConfigOutputReference 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(): GkeonpremBareMetalAdminClusterNodeAccessConfig | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterNodeAccessConfig | undefined);
    private _loginUser?;
    get loginUser(): string;
    set loginUser(value: string);
    resetLoginUser(): void;
    get loginUserInput(): string | undefined;
}
export interface GkeonpremBareMetalAdminClusterNodeConfig {
    /**
    * 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_admin_cluster#max_pods_per_node GkeonpremBareMetalAdminCluster#max_pods_per_node}
    */
    readonly maxPodsPerNode?: number;
}
export declare function gkeonpremBareMetalAdminClusterNodeConfigToTerraform(struct?: GkeonpremBareMetalAdminClusterNodeConfigOutputReference | GkeonpremBareMetalAdminClusterNodeConfig): any;
export declare function gkeonpremBareMetalAdminClusterNodeConfigToHclTerraform(struct?: GkeonpremBareMetalAdminClusterNodeConfigOutputReference | GkeonpremBareMetalAdminClusterNodeConfig): any;
export declare class GkeonpremBareMetalAdminClusterNodeConfigOutputReference 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(): GkeonpremBareMetalAdminClusterNodeConfig | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterNodeConfig | undefined);
    private _maxPodsPerNode?;
    get maxPodsPerNode(): number;
    set maxPodsPerNode(value: number);
    resetMaxPodsPerNode(): void;
    get maxPodsPerNodeInput(): number | undefined;
}
export interface GkeonpremBareMetalAdminClusterProxy {
    /**
    * 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_admin_cluster#no_proxy GkeonpremBareMetalAdminCluster#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_admin_cluster#uri GkeonpremBareMetalAdminCluster#uri}
    */
    readonly uri: string;
}
export declare function gkeonpremBareMetalAdminClusterProxyToTerraform(struct?: GkeonpremBareMetalAdminClusterProxyOutputReference | GkeonpremBareMetalAdminClusterProxy): any;
export declare function gkeonpremBareMetalAdminClusterProxyToHclTerraform(struct?: GkeonpremBareMetalAdminClusterProxyOutputReference | GkeonpremBareMetalAdminClusterProxy): any;
export declare class GkeonpremBareMetalAdminClusterProxyOutputReference 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(): GkeonpremBareMetalAdminClusterProxy | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterProxy | 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 GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsers {
    /**
    * 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_admin_cluster#username GkeonpremBareMetalAdminCluster#username}
    */
    readonly username: string;
}
export declare function gkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsersToTerraform(struct?: GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsers | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsersToHclTerraform(struct?: GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsers | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsersOutputReference 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(): GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsers | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsers | cdktf.IResolvable | undefined);
    private _username?;
    get username(): string;
    set username(value: string);
    get usernameInput(): string | undefined;
}
export declare class GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsers[] | 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): GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsersOutputReference;
}
export interface GkeonpremBareMetalAdminClusterSecurityConfigAuthorization {
    /**
    * admin_users block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#admin_users GkeonpremBareMetalAdminCluster#admin_users}
    */
    readonly adminUsers: GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsers[] | cdktf.IResolvable;
}
export declare function gkeonpremBareMetalAdminClusterSecurityConfigAuthorizationToTerraform(struct?: GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationOutputReference | GkeonpremBareMetalAdminClusterSecurityConfigAuthorization): any;
export declare function gkeonpremBareMetalAdminClusterSecurityConfigAuthorizationToHclTerraform(struct?: GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationOutputReference | GkeonpremBareMetalAdminClusterSecurityConfigAuthorization): any;
export declare class GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationOutputReference 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(): GkeonpremBareMetalAdminClusterSecurityConfigAuthorization | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterSecurityConfigAuthorization | undefined);
    private _adminUsers;
    get adminUsers(): GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsersList;
    putAdminUsers(value: GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsers[] | cdktf.IResolvable): void;
    get adminUsersInput(): cdktf.IResolvable | GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationAdminUsers[] | undefined;
}
export interface GkeonpremBareMetalAdminClusterSecurityConfig {
    /**
    * authorization block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#authorization GkeonpremBareMetalAdminCluster#authorization}
    */
    readonly authorization?: GkeonpremBareMetalAdminClusterSecurityConfigAuthorization;
}
export declare function gkeonpremBareMetalAdminClusterSecurityConfigToTerraform(struct?: GkeonpremBareMetalAdminClusterSecurityConfigOutputReference | GkeonpremBareMetalAdminClusterSecurityConfig): any;
export declare function gkeonpremBareMetalAdminClusterSecurityConfigToHclTerraform(struct?: GkeonpremBareMetalAdminClusterSecurityConfigOutputReference | GkeonpremBareMetalAdminClusterSecurityConfig): any;
export declare class GkeonpremBareMetalAdminClusterSecurityConfigOutputReference 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(): GkeonpremBareMetalAdminClusterSecurityConfig | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterSecurityConfig | undefined);
    private _authorization;
    get authorization(): GkeonpremBareMetalAdminClusterSecurityConfigAuthorizationOutputReference;
    putAuthorization(value: GkeonpremBareMetalAdminClusterSecurityConfigAuthorization): void;
    resetAuthorization(): void;
    get authorizationInput(): GkeonpremBareMetalAdminClusterSecurityConfigAuthorization | undefined;
}
export interface GkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfig {
    /**
    * The host machine path.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#path GkeonpremBareMetalAdminCluster#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_admin_cluster#storage_class GkeonpremBareMetalAdminCluster#storage_class}
    */
    readonly storageClass: string;
}
export declare function gkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfigToTerraform(struct?: GkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfigOutputReference | GkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfig): any;
export declare function gkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfigToHclTerraform(struct?: GkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfigOutputReference | GkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfig): any;
export declare class GkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfigOutputReference 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(): GkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfig | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfig | 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 GkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfig {
    /**
    * The host machine path.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#path GkeonpremBareMetalAdminCluster#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_admin_cluster#storage_class GkeonpremBareMetalAdminCluster#storage_class}
    */
    readonly storageClass: string;
}
export declare function gkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfigToTerraform(struct?: GkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfigOutputReference | GkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfig): any;
export declare function gkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfigToHclTerraform(struct?: GkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfigOutputReference | GkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfig): any;
export declare class GkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfigOutputReference 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(): GkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfig | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfig | 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 GkeonpremBareMetalAdminClusterStorageLvpShareConfig {
    /**
    * 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_admin_cluster#shared_path_pv_count GkeonpremBareMetalAdminCluster#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_admin_cluster#lvp_config GkeonpremBareMetalAdminCluster#lvp_config}
    */
    readonly lvpConfig: GkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfig;
}
export declare function gkeonpremBareMetalAdminClusterStorageLvpShareConfigToTerraform(struct?: GkeonpremBareMetalAdminClusterStorageLvpShareConfigOutputReference | GkeonpremBareMetalAdminClusterStorageLvpShareConfig): any;
export declare function gkeonpremBareMetalAdminClusterStorageLvpShareConfigToHclTerraform(struct?: GkeonpremBareMetalAdminClusterStorageLvpShareConfigOutputReference | GkeonpremBareMetalAdminClusterStorageLvpShareConfig): any;
export declare class GkeonpremBareMetalAdminClusterStorageLvpShareConfigOutputReference 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(): GkeonpremBareMetalAdminClusterStorageLvpShareConfig | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterStorageLvpShareConfig | undefined);
    private _sharedPathPvCount?;
    get sharedPathPvCount(): number;
    set sharedPathPvCount(value: number);
    resetSharedPathPvCount(): void;
    get sharedPathPvCountInput(): number | undefined;
    private _lvpConfig;
    get lvpConfig(): GkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfigOutputReference;
    putLvpConfig(value: GkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfig): void;
    get lvpConfigInput(): GkeonpremBareMetalAdminClusterStorageLvpShareConfigLvpConfig | undefined;
}
export interface GkeonpremBareMetalAdminClusterStorage {
    /**
    * 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_admin_cluster#lvp_node_mounts_config GkeonpremBareMetalAdminCluster#lvp_node_mounts_config}
    */
    readonly lvpNodeMountsConfig: GkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfig;
    /**
    * lvp_share_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#lvp_share_config GkeonpremBareMetalAdminCluster#lvp_share_config}
    */
    readonly lvpShareConfig: GkeonpremBareMetalAdminClusterStorageLvpShareConfig;
}
export declare function gkeonpremBareMetalAdminClusterStorageToTerraform(struct?: GkeonpremBareMetalAdminClusterStorageOutputReference | GkeonpremBareMetalAdminClusterStorage): any;
export declare function gkeonpremBareMetalAdminClusterStorageToHclTerraform(struct?: GkeonpremBareMetalAdminClusterStorageOutputReference | GkeonpremBareMetalAdminClusterStorage): any;
export declare class GkeonpremBareMetalAdminClusterStorageOutputReference 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(): GkeonpremBareMetalAdminClusterStorage | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterStorage | undefined);
    private _lvpNodeMountsConfig;
    get lvpNodeMountsConfig(): GkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfigOutputReference;
    putLvpNodeMountsConfig(value: GkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfig): void;
    get lvpNodeMountsConfigInput(): GkeonpremBareMetalAdminClusterStorageLvpNodeMountsConfig | undefined;
    private _lvpShareConfig;
    get lvpShareConfig(): GkeonpremBareMetalAdminClusterStorageLvpShareConfigOutputReference;
    putLvpShareConfig(value: GkeonpremBareMetalAdminClusterStorageLvpShareConfig): void;
    get lvpShareConfigInput(): GkeonpremBareMetalAdminClusterStorageLvpShareConfig | undefined;
}
export interface GkeonpremBareMetalAdminClusterTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#create GkeonpremBareMetalAdminCluster#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#delete GkeonpremBareMetalAdminCluster#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#update GkeonpremBareMetalAdminCluster#update}
    */
    readonly update?: string;
}
export declare function gkeonpremBareMetalAdminClusterTimeoutsToTerraform(struct?: GkeonpremBareMetalAdminClusterTimeouts | cdktf.IResolvable): any;
export declare function gkeonpremBareMetalAdminClusterTimeoutsToHclTerraform(struct?: GkeonpremBareMetalAdminClusterTimeouts | cdktf.IResolvable): any;
export declare class GkeonpremBareMetalAdminClusterTimeoutsOutputReference 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(): GkeonpremBareMetalAdminClusterTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: GkeonpremBareMetalAdminClusterTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster google_gkeonprem_bare_metal_admin_cluster}
*/
export declare class GkeonpremBareMetalAdminCluster extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_gkeonprem_bare_metal_admin_cluster";
    /**
    * Generates CDKTF code for importing a GkeonpremBareMetalAdminCluster 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 GkeonpremBareMetalAdminCluster to import
    * @param importFromId The id of the existing GkeonpremBareMetalAdminCluster that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/gkeonprem_bare_metal_admin_cluster#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the GkeonpremBareMetalAdminCluster 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_admin_cluster google_gkeonprem_bare_metal_admin_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 GkeonpremBareMetalAdminClusterConfig
    */
    constructor(scope: Construct, id: string, config: GkeonpremBareMetalAdminClusterConfig);
    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);
    resetBareMetalVersion(): void;
    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(): GkeonpremBareMetalAdminClusterFleetList;
    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(): GkeonpremBareMetalAdminClusterStatusList;
    get uid(): string;
    get updateTime(): string;
    private _validationCheck;
    get validationCheck(): GkeonpremBareMetalAdminClusterValidationCheckList;
    private _clusterOperations;
    get clusterOperations(): GkeonpremBareMetalAdminClusterClusterOperationsOutputReference;
    putClusterOperations(value: GkeonpremBareMetalAdminClusterClusterOperations): void;
    resetClusterOperations(): void;
    get clusterOperationsInput(): GkeonpremBareMetalAdminClusterClusterOperations | undefined;
    private _controlPlane;
    get controlPlane(): GkeonpremBareMetalAdminClusterControlPlaneOutputReference;
    putControlPlane(value: GkeonpremBareMetalAdminClusterControlPlane): void;
    resetControlPlane(): void;
    get controlPlaneInput(): GkeonpremBareMetalAdminClusterControlPlane | undefined;
    private _loadBalancer;
    get loadBalancer(): GkeonpremBareMetalAdminClusterLoadBalancerOutputReference;
    putLoadBalancer(value: GkeonpremBareMetalAdminClusterLoadBalancer): void;
    resetLoadBalancer(): void;
    get loadBalancerInput(): GkeonpremBareMetalAdminClusterLoadBalancer | undefined;
    private _maintenanceConfig;
    get maintenanceConfig(): GkeonpremBareMetalAdminClusterMaintenanceConfigOutputReference;
    putMaintenanceConfig(value: GkeonpremBareMetalAdminClusterMaintenanceConfig): void;
    resetMaintenanceConfig(): void;
    get maintenanceConfigInput(): GkeonpremBareMetalAdminClusterMaintenanceConfig | undefined;
    private _networkConfig;
    get networkConfig(): GkeonpremBareMetalAdminClusterNetworkConfigOutputReference;
    putNetworkConfig(value: GkeonpremBareMetalAdminClusterNetworkConfig): void;
    resetNetworkConfig(): void;
    get networkConfigInput(): GkeonpremBareMetalAdminClusterNetworkConfig | undefined;
    private _nodeAccessConfig;
    get nodeAccessConfig(): GkeonpremBareMetalAdminClusterNodeAccessConfigOutputReference;
    putNodeAccessConfig(value: GkeonpremBareMetalAdminClusterNodeAccessConfig): void;
    resetNodeAccessConfig(): void;
    get nodeAccessConfigInput(): GkeonpremBareMetalAdminClusterNodeAccessConfig | undefined;
    private _nodeConfig;
    get nodeConfig(): GkeonpremBareMetalAdminClusterNodeConfigOutputReference;
    putNodeConfig(value: GkeonpremBareMetalAdminClusterNodeConfig): void;
    resetNodeConfig(): void;
    get nodeConfigInput(): GkeonpremBareMetalAdminClusterNodeConfig | undefined;
    private _proxy;
    get proxy(): GkeonpremBareMetalAdminClusterProxyOutputReference;
    putProxy(value: GkeonpremBareMetalAdminClusterProxy): void;
    resetProxy(): void;
    get proxyInput(): GkeonpremBareMetalAdminClusterProxy | undefined;
    private _securityConfig;
    get securityConfig(): GkeonpremBareMetalAdminClusterSecurityConfigOutputReference;
    putSecurityConfig(value: GkeonpremBareMetalAdminClusterSecurityConfig): void;
    resetSecurityConfig(): void;
    get securityConfigInput(): GkeonpremBareMetalAdminClusterSecurityConfig | undefined;
    private _storage;
    get storage(): GkeonpremBareMetalAdminClusterStorageOutputReference;
    putStorage(value: GkeonpremBareMetalAdminClusterStorage): void;
    resetStorage(): void;
    get storageInput(): GkeonpremBareMetalAdminClusterStorage | undefined;
    private _timeouts;
    get timeouts(): GkeonpremBareMetalAdminClusterTimeoutsOutputReference;
    putTimeouts(value: GkeonpremBareMetalAdminClusterTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | GkeonpremBareMetalAdminClusterTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
