/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface EdgecontainerClusterConfig extends cdktf.TerraformMetaArguments {
    /**
    * The default maximum number of pods per node used if a maximum value is not
    * specified explicitly for a node pool in this cluster. If unspecified, the
    * Kubernetes default value will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#default_max_pods_per_node EdgecontainerCluster#default_max_pods_per_node}
    */
    readonly defaultMaxPodsPerNode?: number;
    /**
    * Address pools for cluster data plane external load balancing.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#external_load_balancer_ipv4_address_pools EdgecontainerCluster#external_load_balancer_ipv4_address_pools}
    */
    readonly externalLoadBalancerIpv4AddressPools?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#id EdgecontainerCluster#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;
    /**
    * User-defined labels for the edgecloud cluster.
    *
    * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
    * Please refer to the field 'effective_labels' for all of the labels present on the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#labels EdgecontainerCluster#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The location of the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#location EdgecontainerCluster#location}
    */
    readonly location: string;
    /**
    * The GDCE cluster name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#name EdgecontainerCluster#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#project EdgecontainerCluster#project}
    */
    readonly project?: string;
    /**
    * The release channel a cluster is subscribed to. Possible values: ["RELEASE_CHANNEL_UNSPECIFIED", "NONE", "REGULAR"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#release_channel EdgecontainerCluster#release_channel}
    */
    readonly releaseChannel?: string;
    /**
    * The target cluster version. For example: "1.5.0".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#target_version EdgecontainerCluster#target_version}
    */
    readonly targetVersion?: string;
    /**
    * authorization block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#authorization EdgecontainerCluster#authorization}
    */
    readonly authorization: EdgecontainerClusterAuthorization;
    /**
    * control_plane block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#control_plane EdgecontainerCluster#control_plane}
    */
    readonly controlPlane?: EdgecontainerClusterControlPlane;
    /**
    * control_plane_encryption block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#control_plane_encryption EdgecontainerCluster#control_plane_encryption}
    */
    readonly controlPlaneEncryption?: EdgecontainerClusterControlPlaneEncryption;
    /**
    * fleet block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#fleet EdgecontainerCluster#fleet}
    */
    readonly fleet: EdgecontainerClusterFleet;
    /**
    * maintenance_policy block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#maintenance_policy EdgecontainerCluster#maintenance_policy}
    */
    readonly maintenancePolicy?: EdgecontainerClusterMaintenancePolicy;
    /**
    * networking block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#networking EdgecontainerCluster#networking}
    */
    readonly networking: EdgecontainerClusterNetworking;
    /**
    * system_addons_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#system_addons_config EdgecontainerCluster#system_addons_config}
    */
    readonly systemAddonsConfig?: EdgecontainerClusterSystemAddonsConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#timeouts EdgecontainerCluster#timeouts}
    */
    readonly timeouts?: EdgecontainerClusterTimeouts;
}
export interface EdgecontainerClusterMaintenanceEvents {
}
export declare function edgecontainerClusterMaintenanceEventsToTerraform(struct?: EdgecontainerClusterMaintenanceEvents): any;
export declare function edgecontainerClusterMaintenanceEventsToHclTerraform(struct?: EdgecontainerClusterMaintenanceEvents): any;
export declare class EdgecontainerClusterMaintenanceEventsOutputReference 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(): EdgecontainerClusterMaintenanceEvents | undefined;
    set internalValue(value: EdgecontainerClusterMaintenanceEvents | undefined);
    get createTime(): string;
    get endTime(): string;
    get operation(): string;
    get schedule(): string;
    get startTime(): string;
    get state(): string;
    get targetVersion(): string;
    get type(): string;
    get updateTime(): string;
    get uuid(): string;
}
export declare class EdgecontainerClusterMaintenanceEventsList 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): EdgecontainerClusterMaintenanceEventsOutputReference;
}
export interface EdgecontainerClusterAuthorizationAdminUsers {
    /**
    * An active Google username.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#username EdgecontainerCluster#username}
    */
    readonly username: string;
}
export declare function edgecontainerClusterAuthorizationAdminUsersToTerraform(struct?: EdgecontainerClusterAuthorizationAdminUsersOutputReference | EdgecontainerClusterAuthorizationAdminUsers): any;
export declare function edgecontainerClusterAuthorizationAdminUsersToHclTerraform(struct?: EdgecontainerClusterAuthorizationAdminUsersOutputReference | EdgecontainerClusterAuthorizationAdminUsers): any;
export declare class EdgecontainerClusterAuthorizationAdminUsersOutputReference 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(): EdgecontainerClusterAuthorizationAdminUsers | undefined;
    set internalValue(value: EdgecontainerClusterAuthorizationAdminUsers | undefined);
    private _username?;
    get username(): string;
    set username(value: string);
    get usernameInput(): string | undefined;
}
export interface EdgecontainerClusterAuthorization {
    /**
    * admin_users block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#admin_users EdgecontainerCluster#admin_users}
    */
    readonly adminUsers: EdgecontainerClusterAuthorizationAdminUsers;
}
export declare function edgecontainerClusterAuthorizationToTerraform(struct?: EdgecontainerClusterAuthorizationOutputReference | EdgecontainerClusterAuthorization): any;
export declare function edgecontainerClusterAuthorizationToHclTerraform(struct?: EdgecontainerClusterAuthorizationOutputReference | EdgecontainerClusterAuthorization): any;
export declare class EdgecontainerClusterAuthorizationOutputReference 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(): EdgecontainerClusterAuthorization | undefined;
    set internalValue(value: EdgecontainerClusterAuthorization | undefined);
    private _adminUsers;
    get adminUsers(): EdgecontainerClusterAuthorizationAdminUsersOutputReference;
    putAdminUsers(value: EdgecontainerClusterAuthorizationAdminUsers): void;
    get adminUsersInput(): EdgecontainerClusterAuthorizationAdminUsers | undefined;
}
export interface EdgecontainerClusterControlPlaneLocal {
    /**
    * Only machines matching this filter will be allowed to host control
    * plane nodes. The filtering language accepts strings like "name=<name>",
    * and is documented here: [AIP-160](https://google.aip.dev/160).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#machine_filter EdgecontainerCluster#machine_filter}
    */
    readonly machineFilter?: string;
    /**
    * The number of nodes to serve as replicas of the Control Plane.
    * Only 1 and 3 are supported.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#node_count EdgecontainerCluster#node_count}
    */
    readonly nodeCount?: number;
    /**
    * Name of the Google Distributed Cloud Edge zones where this node pool
    * will be created. For example: 'us-central1-edge-customer-a'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#node_location EdgecontainerCluster#node_location}
    */
    readonly nodeLocation?: string;
    /**
    * Policy configuration about how user applications are deployed. Possible values: ["SHARED_DEPLOYMENT_POLICY_UNSPECIFIED", "ALLOWED", "DISALLOWED"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#shared_deployment_policy EdgecontainerCluster#shared_deployment_policy}
    */
    readonly sharedDeploymentPolicy?: string;
}
export declare function edgecontainerClusterControlPlaneLocalToTerraform(struct?: EdgecontainerClusterControlPlaneLocalOutputReference | EdgecontainerClusterControlPlaneLocal): any;
export declare function edgecontainerClusterControlPlaneLocalToHclTerraform(struct?: EdgecontainerClusterControlPlaneLocalOutputReference | EdgecontainerClusterControlPlaneLocal): any;
export declare class EdgecontainerClusterControlPlaneLocalOutputReference 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(): EdgecontainerClusterControlPlaneLocal | undefined;
    set internalValue(value: EdgecontainerClusterControlPlaneLocal | undefined);
    private _machineFilter?;
    get machineFilter(): string;
    set machineFilter(value: string);
    resetMachineFilter(): void;
    get machineFilterInput(): string | undefined;
    private _nodeCount?;
    get nodeCount(): number;
    set nodeCount(value: number);
    resetNodeCount(): void;
    get nodeCountInput(): number | undefined;
    private _nodeLocation?;
    get nodeLocation(): string;
    set nodeLocation(value: string);
    resetNodeLocation(): void;
    get nodeLocationInput(): string | undefined;
    private _sharedDeploymentPolicy?;
    get sharedDeploymentPolicy(): string;
    set sharedDeploymentPolicy(value: string);
    resetSharedDeploymentPolicy(): void;
    get sharedDeploymentPolicyInput(): string | undefined;
}
export interface EdgecontainerClusterControlPlaneRemote {
    /**
    * Name of the Google Distributed Cloud Edge zones where this node pool
    * will be created. For example: 'us-central1-edge-customer-a'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#node_location EdgecontainerCluster#node_location}
    */
    readonly nodeLocation?: string;
}
export declare function edgecontainerClusterControlPlaneRemoteToTerraform(struct?: EdgecontainerClusterControlPlaneRemoteOutputReference | EdgecontainerClusterControlPlaneRemote): any;
export declare function edgecontainerClusterControlPlaneRemoteToHclTerraform(struct?: EdgecontainerClusterControlPlaneRemoteOutputReference | EdgecontainerClusterControlPlaneRemote): any;
export declare class EdgecontainerClusterControlPlaneRemoteOutputReference 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(): EdgecontainerClusterControlPlaneRemote | undefined;
    set internalValue(value: EdgecontainerClusterControlPlaneRemote | undefined);
    private _nodeLocation?;
    get nodeLocation(): string;
    set nodeLocation(value: string);
    resetNodeLocation(): void;
    get nodeLocationInput(): string | undefined;
}
export interface EdgecontainerClusterControlPlane {
    /**
    * local block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#local EdgecontainerCluster#local}
    */
    readonly local?: EdgecontainerClusterControlPlaneLocal;
    /**
    * remote block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#remote EdgecontainerCluster#remote}
    */
    readonly remote?: EdgecontainerClusterControlPlaneRemote;
}
export declare function edgecontainerClusterControlPlaneToTerraform(struct?: EdgecontainerClusterControlPlaneOutputReference | EdgecontainerClusterControlPlane): any;
export declare function edgecontainerClusterControlPlaneToHclTerraform(struct?: EdgecontainerClusterControlPlaneOutputReference | EdgecontainerClusterControlPlane): any;
export declare class EdgecontainerClusterControlPlaneOutputReference 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(): EdgecontainerClusterControlPlane | undefined;
    set internalValue(value: EdgecontainerClusterControlPlane | undefined);
    private _local;
    get local(): EdgecontainerClusterControlPlaneLocalOutputReference;
    putLocal(value: EdgecontainerClusterControlPlaneLocal): void;
    resetLocal(): void;
    get localInput(): EdgecontainerClusterControlPlaneLocal | undefined;
    private _remote;
    get remote(): EdgecontainerClusterControlPlaneRemoteOutputReference;
    putRemote(value: EdgecontainerClusterControlPlaneRemote): void;
    resetRemote(): void;
    get remoteInput(): EdgecontainerClusterControlPlaneRemote | undefined;
}
export interface EdgecontainerClusterControlPlaneEncryptionKmsStatus {
}
export declare function edgecontainerClusterControlPlaneEncryptionKmsStatusToTerraform(struct?: EdgecontainerClusterControlPlaneEncryptionKmsStatus): any;
export declare function edgecontainerClusterControlPlaneEncryptionKmsStatusToHclTerraform(struct?: EdgecontainerClusterControlPlaneEncryptionKmsStatus): any;
export declare class EdgecontainerClusterControlPlaneEncryptionKmsStatusOutputReference 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(): EdgecontainerClusterControlPlaneEncryptionKmsStatus | undefined;
    set internalValue(value: EdgecontainerClusterControlPlaneEncryptionKmsStatus | undefined);
    get code(): number;
    get message(): string;
}
export declare class EdgecontainerClusterControlPlaneEncryptionKmsStatusList 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): EdgecontainerClusterControlPlaneEncryptionKmsStatusOutputReference;
}
export interface EdgecontainerClusterControlPlaneEncryption {
    /**
    * The Cloud KMS CryptoKey e.g.
    * projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}
    * to use for protecting control plane disks. If not specified, a
    * Google-managed key will be used instead.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#kms_key EdgecontainerCluster#kms_key}
    */
    readonly kmsKey?: string;
}
export declare function edgecontainerClusterControlPlaneEncryptionToTerraform(struct?: EdgecontainerClusterControlPlaneEncryptionOutputReference | EdgecontainerClusterControlPlaneEncryption): any;
export declare function edgecontainerClusterControlPlaneEncryptionToHclTerraform(struct?: EdgecontainerClusterControlPlaneEncryptionOutputReference | EdgecontainerClusterControlPlaneEncryption): any;
export declare class EdgecontainerClusterControlPlaneEncryptionOutputReference 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(): EdgecontainerClusterControlPlaneEncryption | undefined;
    set internalValue(value: EdgecontainerClusterControlPlaneEncryption | undefined);
    private _kmsKey?;
    get kmsKey(): string;
    set kmsKey(value: string);
    resetKmsKey(): void;
    get kmsKeyInput(): string | undefined;
    get kmsKeyActiveVersion(): string;
    get kmsKeyState(): string;
    private _kmsStatus;
    get kmsStatus(): EdgecontainerClusterControlPlaneEncryptionKmsStatusList;
}
export interface EdgecontainerClusterFleet {
    /**
    * The name of the Fleet host project where this cluster will be registered.
    * Project names are formatted as
    * 'projects/<project-number>'.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#project EdgecontainerCluster#project}
    */
    readonly project: string;
}
export declare function edgecontainerClusterFleetToTerraform(struct?: EdgecontainerClusterFleetOutputReference | EdgecontainerClusterFleet): any;
export declare function edgecontainerClusterFleetToHclTerraform(struct?: EdgecontainerClusterFleetOutputReference | EdgecontainerClusterFleet): any;
export declare class EdgecontainerClusterFleetOutputReference 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(): EdgecontainerClusterFleet | undefined;
    set internalValue(value: EdgecontainerClusterFleet | undefined);
    get membership(): string;
    private _project?;
    get project(): string;
    set project(value: string);
    get projectInput(): string | undefined;
}
export interface EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindow {
    /**
    * The time that the window ends. The end time must take place after the
    * start time.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#end_time EdgecontainerCluster#end_time}
    */
    readonly endTime?: string;
    /**
    * The time that the window first starts.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#start_time EdgecontainerCluster#start_time}
    */
    readonly startTime?: string;
}
export declare function edgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindowToTerraform(struct?: EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindowOutputReference | EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindow): any;
export declare function edgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindowToHclTerraform(struct?: EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindowOutputReference | EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindow): any;
export declare class EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindowOutputReference 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(): EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindow | undefined;
    set internalValue(value: EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindow | undefined);
    private _endTime?;
    get endTime(): string;
    set endTime(value: string);
    resetEndTime(): void;
    get endTimeInput(): string | undefined;
    private _startTime?;
    get startTime(): string;
    set startTime(value: string);
    resetStartTime(): void;
    get startTimeInput(): string | undefined;
}
export interface EdgecontainerClusterMaintenancePolicyMaintenanceExclusions {
    /**
    * A unique (per cluster) id for the window.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#id EdgecontainerCluster#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;
    /**
    * window block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#window EdgecontainerCluster#window}
    */
    readonly window?: EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindow;
}
export declare function edgecontainerClusterMaintenancePolicyMaintenanceExclusionsToTerraform(struct?: EdgecontainerClusterMaintenancePolicyMaintenanceExclusions | cdktf.IResolvable): any;
export declare function edgecontainerClusterMaintenancePolicyMaintenanceExclusionsToHclTerraform(struct?: EdgecontainerClusterMaintenancePolicyMaintenanceExclusions | cdktf.IResolvable): any;
export declare class EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsOutputReference 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(): EdgecontainerClusterMaintenancePolicyMaintenanceExclusions | cdktf.IResolvable | undefined;
    set internalValue(value: EdgecontainerClusterMaintenancePolicyMaintenanceExclusions | cdktf.IResolvable | undefined);
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _window;
    get window(): EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindowOutputReference;
    putWindow(value: EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindow): void;
    resetWindow(): void;
    get windowInput(): EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsWindow | undefined;
}
export declare class EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: EdgecontainerClusterMaintenancePolicyMaintenanceExclusions[] | 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): EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsOutputReference;
}
export interface EdgecontainerClusterMaintenancePolicyWindowRecurringWindowWindow {
    /**
    * The time that the window ends. The end time must take place after the
    * start time.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#end_time EdgecontainerCluster#end_time}
    */
    readonly endTime?: string;
    /**
    * The time that the window first starts.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#start_time EdgecontainerCluster#start_time}
    */
    readonly startTime?: string;
}
export declare function edgecontainerClusterMaintenancePolicyWindowRecurringWindowWindowToTerraform(struct?: EdgecontainerClusterMaintenancePolicyWindowRecurringWindowWindowOutputReference | EdgecontainerClusterMaintenancePolicyWindowRecurringWindowWindow): any;
export declare function edgecontainerClusterMaintenancePolicyWindowRecurringWindowWindowToHclTerraform(struct?: EdgecontainerClusterMaintenancePolicyWindowRecurringWindowWindowOutputReference | EdgecontainerClusterMaintenancePolicyWindowRecurringWindowWindow): any;
export declare class EdgecontainerClusterMaintenancePolicyWindowRecurringWindowWindowOutputReference 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(): EdgecontainerClusterMaintenancePolicyWindowRecurringWindowWindow | undefined;
    set internalValue(value: EdgecontainerClusterMaintenancePolicyWindowRecurringWindowWindow | undefined);
    private _endTime?;
    get endTime(): string;
    set endTime(value: string);
    resetEndTime(): void;
    get endTimeInput(): string | undefined;
    private _startTime?;
    get startTime(): string;
    set startTime(value: string);
    resetStartTime(): void;
    get startTimeInput(): string | undefined;
}
export interface EdgecontainerClusterMaintenancePolicyWindowRecurringWindow {
    /**
    * An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how
    * this window recurs. They go on for the span of time between the start and
    * end time.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#recurrence EdgecontainerCluster#recurrence}
    */
    readonly recurrence?: string;
    /**
    * window block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#window EdgecontainerCluster#window}
    */
    readonly window?: EdgecontainerClusterMaintenancePolicyWindowRecurringWindowWindow;
}
export declare function edgecontainerClusterMaintenancePolicyWindowRecurringWindowToTerraform(struct?: EdgecontainerClusterMaintenancePolicyWindowRecurringWindowOutputReference | EdgecontainerClusterMaintenancePolicyWindowRecurringWindow): any;
export declare function edgecontainerClusterMaintenancePolicyWindowRecurringWindowToHclTerraform(struct?: EdgecontainerClusterMaintenancePolicyWindowRecurringWindowOutputReference | EdgecontainerClusterMaintenancePolicyWindowRecurringWindow): any;
export declare class EdgecontainerClusterMaintenancePolicyWindowRecurringWindowOutputReference 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(): EdgecontainerClusterMaintenancePolicyWindowRecurringWindow | undefined;
    set internalValue(value: EdgecontainerClusterMaintenancePolicyWindowRecurringWindow | undefined);
    private _recurrence?;
    get recurrence(): string;
    set recurrence(value: string);
    resetRecurrence(): void;
    get recurrenceInput(): string | undefined;
    private _window;
    get window(): EdgecontainerClusterMaintenancePolicyWindowRecurringWindowWindowOutputReference;
    putWindow(value: EdgecontainerClusterMaintenancePolicyWindowRecurringWindowWindow): void;
    resetWindow(): void;
    get windowInput(): EdgecontainerClusterMaintenancePolicyWindowRecurringWindowWindow | undefined;
}
export interface EdgecontainerClusterMaintenancePolicyWindow {
    /**
    * recurring_window block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#recurring_window EdgecontainerCluster#recurring_window}
    */
    readonly recurringWindow: EdgecontainerClusterMaintenancePolicyWindowRecurringWindow;
}
export declare function edgecontainerClusterMaintenancePolicyWindowToTerraform(struct?: EdgecontainerClusterMaintenancePolicyWindowOutputReference | EdgecontainerClusterMaintenancePolicyWindow): any;
export declare function edgecontainerClusterMaintenancePolicyWindowToHclTerraform(struct?: EdgecontainerClusterMaintenancePolicyWindowOutputReference | EdgecontainerClusterMaintenancePolicyWindow): any;
export declare class EdgecontainerClusterMaintenancePolicyWindowOutputReference 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(): EdgecontainerClusterMaintenancePolicyWindow | undefined;
    set internalValue(value: EdgecontainerClusterMaintenancePolicyWindow | undefined);
    private _recurringWindow;
    get recurringWindow(): EdgecontainerClusterMaintenancePolicyWindowRecurringWindowOutputReference;
    putRecurringWindow(value: EdgecontainerClusterMaintenancePolicyWindowRecurringWindow): void;
    get recurringWindowInput(): EdgecontainerClusterMaintenancePolicyWindowRecurringWindow | undefined;
}
export interface EdgecontainerClusterMaintenancePolicy {
    /**
    * maintenance_exclusions block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#maintenance_exclusions EdgecontainerCluster#maintenance_exclusions}
    */
    readonly maintenanceExclusions?: EdgecontainerClusterMaintenancePolicyMaintenanceExclusions[] | cdktf.IResolvable;
    /**
    * window block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#window EdgecontainerCluster#window}
    */
    readonly window: EdgecontainerClusterMaintenancePolicyWindow;
}
export declare function edgecontainerClusterMaintenancePolicyToTerraform(struct?: EdgecontainerClusterMaintenancePolicyOutputReference | EdgecontainerClusterMaintenancePolicy): any;
export declare function edgecontainerClusterMaintenancePolicyToHclTerraform(struct?: EdgecontainerClusterMaintenancePolicyOutputReference | EdgecontainerClusterMaintenancePolicy): any;
export declare class EdgecontainerClusterMaintenancePolicyOutputReference 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(): EdgecontainerClusterMaintenancePolicy | undefined;
    set internalValue(value: EdgecontainerClusterMaintenancePolicy | undefined);
    private _maintenanceExclusions;
    get maintenanceExclusions(): EdgecontainerClusterMaintenancePolicyMaintenanceExclusionsList;
    putMaintenanceExclusions(value: EdgecontainerClusterMaintenancePolicyMaintenanceExclusions[] | cdktf.IResolvable): void;
    resetMaintenanceExclusions(): void;
    get maintenanceExclusionsInput(): cdktf.IResolvable | EdgecontainerClusterMaintenancePolicyMaintenanceExclusions[] | undefined;
    private _window;
    get window(): EdgecontainerClusterMaintenancePolicyWindowOutputReference;
    putWindow(value: EdgecontainerClusterMaintenancePolicyWindow): void;
    get windowInput(): EdgecontainerClusterMaintenancePolicyWindow | undefined;
}
export interface EdgecontainerClusterNetworking {
    /**
    * All pods in the cluster are assigned an RFC1918 IPv4 address from these
    * blocks. Only a single block is supported. This field cannot be changed
    * after creation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#cluster_ipv4_cidr_blocks EdgecontainerCluster#cluster_ipv4_cidr_blocks}
    */
    readonly clusterIpv4CidrBlocks: string[];
    /**
    * If specified, dual stack mode is enabled and all pods in the cluster are
    * assigned an IPv6 address from these blocks alongside from an IPv4
    * address. Only a single block is supported. This field cannot be changed
    * after creation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#cluster_ipv6_cidr_blocks EdgecontainerCluster#cluster_ipv6_cidr_blocks}
    */
    readonly clusterIpv6CidrBlocks?: string[];
    /**
    * All services in the cluster are assigned an RFC1918 IPv4 address from these
    * blocks. Only a single block is supported. This field cannot be changed
    * after creation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#services_ipv4_cidr_blocks EdgecontainerCluster#services_ipv4_cidr_blocks}
    */
    readonly servicesIpv4CidrBlocks: string[];
    /**
    * If specified, dual stack mode is enabled and all services in the cluster are
    * assigned an IPv6 address from these blocks alongside from an IPv4
    * address. Only a single block is supported. This field cannot be changed
    * after creation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#services_ipv6_cidr_blocks EdgecontainerCluster#services_ipv6_cidr_blocks}
    */
    readonly servicesIpv6CidrBlocks?: string[];
}
export declare function edgecontainerClusterNetworkingToTerraform(struct?: EdgecontainerClusterNetworkingOutputReference | EdgecontainerClusterNetworking): any;
export declare function edgecontainerClusterNetworkingToHclTerraform(struct?: EdgecontainerClusterNetworkingOutputReference | EdgecontainerClusterNetworking): any;
export declare class EdgecontainerClusterNetworkingOutputReference 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(): EdgecontainerClusterNetworking | undefined;
    set internalValue(value: EdgecontainerClusterNetworking | undefined);
    private _clusterIpv4CidrBlocks?;
    get clusterIpv4CidrBlocks(): string[];
    set clusterIpv4CidrBlocks(value: string[]);
    get clusterIpv4CidrBlocksInput(): string[] | undefined;
    private _clusterIpv6CidrBlocks?;
    get clusterIpv6CidrBlocks(): string[];
    set clusterIpv6CidrBlocks(value: string[]);
    resetClusterIpv6CidrBlocks(): void;
    get clusterIpv6CidrBlocksInput(): string[] | undefined;
    get networkType(): string;
    private _servicesIpv4CidrBlocks?;
    get servicesIpv4CidrBlocks(): string[];
    set servicesIpv4CidrBlocks(value: string[]);
    get servicesIpv4CidrBlocksInput(): string[] | undefined;
    private _servicesIpv6CidrBlocks?;
    get servicesIpv6CidrBlocks(): string[];
    set servicesIpv6CidrBlocks(value: string[]);
    resetServicesIpv6CidrBlocks(): void;
    get servicesIpv6CidrBlocksInput(): string[] | undefined;
}
export interface EdgecontainerClusterSystemAddonsConfigIngress {
    /**
    * Whether Ingress is disabled.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#disabled EdgecontainerCluster#disabled}
    */
    readonly disabled?: boolean | cdktf.IResolvable;
    /**
    * Ingress VIP.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#ipv4_vip EdgecontainerCluster#ipv4_vip}
    */
    readonly ipv4Vip?: string;
}
export declare function edgecontainerClusterSystemAddonsConfigIngressToTerraform(struct?: EdgecontainerClusterSystemAddonsConfigIngressOutputReference | EdgecontainerClusterSystemAddonsConfigIngress): any;
export declare function edgecontainerClusterSystemAddonsConfigIngressToHclTerraform(struct?: EdgecontainerClusterSystemAddonsConfigIngressOutputReference | EdgecontainerClusterSystemAddonsConfigIngress): any;
export declare class EdgecontainerClusterSystemAddonsConfigIngressOutputReference 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(): EdgecontainerClusterSystemAddonsConfigIngress | undefined;
    set internalValue(value: EdgecontainerClusterSystemAddonsConfigIngress | undefined);
    private _disabled?;
    get disabled(): boolean | cdktf.IResolvable;
    set disabled(value: boolean | cdktf.IResolvable);
    resetDisabled(): void;
    get disabledInput(): boolean | cdktf.IResolvable | undefined;
    private _ipv4Vip?;
    get ipv4Vip(): string;
    set ipv4Vip(value: string);
    resetIpv4Vip(): void;
    get ipv4VipInput(): string | undefined;
}
export interface EdgecontainerClusterSystemAddonsConfig {
    /**
    * ingress block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#ingress EdgecontainerCluster#ingress}
    */
    readonly ingress?: EdgecontainerClusterSystemAddonsConfigIngress;
}
export declare function edgecontainerClusterSystemAddonsConfigToTerraform(struct?: EdgecontainerClusterSystemAddonsConfigOutputReference | EdgecontainerClusterSystemAddonsConfig): any;
export declare function edgecontainerClusterSystemAddonsConfigToHclTerraform(struct?: EdgecontainerClusterSystemAddonsConfigOutputReference | EdgecontainerClusterSystemAddonsConfig): any;
export declare class EdgecontainerClusterSystemAddonsConfigOutputReference 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(): EdgecontainerClusterSystemAddonsConfig | undefined;
    set internalValue(value: EdgecontainerClusterSystemAddonsConfig | undefined);
    private _ingress;
    get ingress(): EdgecontainerClusterSystemAddonsConfigIngressOutputReference;
    putIngress(value: EdgecontainerClusterSystemAddonsConfigIngress): void;
    resetIngress(): void;
    get ingressInput(): EdgecontainerClusterSystemAddonsConfigIngress | undefined;
}
export interface EdgecontainerClusterTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#create EdgecontainerCluster#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#delete EdgecontainerCluster#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#update EdgecontainerCluster#update}
    */
    readonly update?: string;
}
export declare function edgecontainerClusterTimeoutsToTerraform(struct?: EdgecontainerClusterTimeouts | cdktf.IResolvable): any;
export declare function edgecontainerClusterTimeoutsToHclTerraform(struct?: EdgecontainerClusterTimeouts | cdktf.IResolvable): any;
export declare class EdgecontainerClusterTimeoutsOutputReference 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(): EdgecontainerClusterTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: EdgecontainerClusterTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster google_edgecontainer_cluster}
*/
export declare class EdgecontainerCluster extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_edgecontainer_cluster";
    /**
    * Generates CDKTF code for importing a EdgecontainerCluster 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 EdgecontainerCluster to import
    * @param importFromId The id of the existing EdgecontainerCluster that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the EdgecontainerCluster to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/edgecontainer_cluster google_edgecontainer_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 EdgecontainerClusterConfig
    */
    constructor(scope: Construct, id: string, config: EdgecontainerClusterConfig);
    get clusterCaCertificate(): string;
    get controlPlaneVersion(): string;
    get createTime(): string;
    private _defaultMaxPodsPerNode?;
    get defaultMaxPodsPerNode(): number;
    set defaultMaxPodsPerNode(value: number);
    resetDefaultMaxPodsPerNode(): void;
    get defaultMaxPodsPerNodeInput(): number | undefined;
    private _effectiveLabels;
    get effectiveLabels(): cdktf.StringMap;
    get endpoint(): string;
    private _externalLoadBalancerIpv4AddressPools?;
    get externalLoadBalancerIpv4AddressPools(): string[];
    set externalLoadBalancerIpv4AddressPools(value: string[]);
    resetExternalLoadBalancerIpv4AddressPools(): void;
    get externalLoadBalancerIpv4AddressPoolsInput(): string[] | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    private _maintenanceEvents;
    get maintenanceEvents(): EdgecontainerClusterMaintenanceEventsList;
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    get nodeVersion(): string;
    get port(): number;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _releaseChannel?;
    get releaseChannel(): string;
    set releaseChannel(value: string);
    resetReleaseChannel(): void;
    get releaseChannelInput(): string | undefined;
    get status(): string;
    private _targetVersion?;
    get targetVersion(): string;
    set targetVersion(value: string);
    resetTargetVersion(): void;
    get targetVersionInput(): string | undefined;
    private _terraformLabels;
    get terraformLabels(): cdktf.StringMap;
    get updateTime(): string;
    private _authorization;
    get authorization(): EdgecontainerClusterAuthorizationOutputReference;
    putAuthorization(value: EdgecontainerClusterAuthorization): void;
    get authorizationInput(): EdgecontainerClusterAuthorization | undefined;
    private _controlPlane;
    get controlPlane(): EdgecontainerClusterControlPlaneOutputReference;
    putControlPlane(value: EdgecontainerClusterControlPlane): void;
    resetControlPlane(): void;
    get controlPlaneInput(): EdgecontainerClusterControlPlane | undefined;
    private _controlPlaneEncryption;
    get controlPlaneEncryption(): EdgecontainerClusterControlPlaneEncryptionOutputReference;
    putControlPlaneEncryption(value: EdgecontainerClusterControlPlaneEncryption): void;
    resetControlPlaneEncryption(): void;
    get controlPlaneEncryptionInput(): EdgecontainerClusterControlPlaneEncryption | undefined;
    private _fleet;
    get fleet(): EdgecontainerClusterFleetOutputReference;
    putFleet(value: EdgecontainerClusterFleet): void;
    get fleetInput(): EdgecontainerClusterFleet | undefined;
    private _maintenancePolicy;
    get maintenancePolicy(): EdgecontainerClusterMaintenancePolicyOutputReference;
    putMaintenancePolicy(value: EdgecontainerClusterMaintenancePolicy): void;
    resetMaintenancePolicy(): void;
    get maintenancePolicyInput(): EdgecontainerClusterMaintenancePolicy | undefined;
    private _networking;
    get networking(): EdgecontainerClusterNetworkingOutputReference;
    putNetworking(value: EdgecontainerClusterNetworking): void;
    get networkingInput(): EdgecontainerClusterNetworking | undefined;
    private _systemAddonsConfig;
    get systemAddonsConfig(): EdgecontainerClusterSystemAddonsConfigOutputReference;
    putSystemAddonsConfig(value: EdgecontainerClusterSystemAddonsConfig): void;
    resetSystemAddonsConfig(): void;
    get systemAddonsConfigInput(): EdgecontainerClusterSystemAddonsConfig | undefined;
    private _timeouts;
    get timeouts(): EdgecontainerClusterTimeoutsOutputReference;
    putTimeouts(value: EdgecontainerClusterTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | EdgecontainerClusterTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
