import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface BdsBdsInstanceConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#bootstrap_script_url BdsBdsInstance#bootstrap_script_url}
    */
    readonly bootstrapScriptUrl?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#cluster_admin_password BdsBdsInstance#cluster_admin_password}
    */
    readonly clusterAdminPassword: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#cluster_profile BdsBdsInstance#cluster_profile}
    */
    readonly clusterProfile?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#cluster_public_key BdsBdsInstance#cluster_public_key}
    */
    readonly clusterPublicKey: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#cluster_version BdsBdsInstance#cluster_version}
    */
    readonly clusterVersion: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#compartment_id BdsBdsInstance#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#defined_tags BdsBdsInstance#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#display_name BdsBdsInstance#display_name}
    */
    readonly displayName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#freeform_tags BdsBdsInstance#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#id BdsBdsInstance#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;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#ignore_existing_nodes_shape BdsBdsInstance#ignore_existing_nodes_shape}
    */
    readonly ignoreExistingNodesShape?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#is_cloud_sql_configured BdsBdsInstance#is_cloud_sql_configured}
    */
    readonly isCloudSqlConfigured?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#is_force_stop_jobs BdsBdsInstance#is_force_stop_jobs}
    */
    readonly isForceStopJobs?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#is_high_availability BdsBdsInstance#is_high_availability}
    */
    readonly isHighAvailability: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#is_kafka_configured BdsBdsInstance#is_kafka_configured}
    */
    readonly isKafkaConfigured?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#is_secure BdsBdsInstance#is_secure}
    */
    readonly isSecure: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#kerberos_realm_name BdsBdsInstance#kerberos_realm_name}
    */
    readonly kerberosRealmName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#kms_key_id BdsBdsInstance#kms_key_id}
    */
    readonly kmsKeyId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#os_patch_version BdsBdsInstance#os_patch_version}
    */
    readonly osPatchVersion?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#state BdsBdsInstance#state}
    */
    readonly state?: string;
    /**
    * cloud_sql_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#cloud_sql_details BdsBdsInstance#cloud_sql_details}
    */
    readonly cloudSqlDetails?: BdsBdsInstanceCloudSqlDetails[] | cdktf.IResolvable;
    /**
    * compute_only_worker_node block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#compute_only_worker_node BdsBdsInstance#compute_only_worker_node}
    */
    readonly computeOnlyWorkerNode?: BdsBdsInstanceComputeOnlyWorkerNode;
    /**
    * edge_node block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#edge_node BdsBdsInstance#edge_node}
    */
    readonly edgeNode?: BdsBdsInstanceEdgeNode;
    /**
    * kafka_broker_node block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#kafka_broker_node BdsBdsInstance#kafka_broker_node}
    */
    readonly kafkaBrokerNode?: BdsBdsInstanceKafkaBrokerNode;
    /**
    * master_node block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#master_node BdsBdsInstance#master_node}
    */
    readonly masterNode: BdsBdsInstanceMasterNode;
    /**
    * network_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#network_config BdsBdsInstance#network_config}
    */
    readonly networkConfig?: BdsBdsInstanceNetworkConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#timeouts BdsBdsInstance#timeouts}
    */
    readonly timeouts?: BdsBdsInstanceTimeouts;
    /**
    * util_node block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#util_node BdsBdsInstance#util_node}
    */
    readonly utilNode: BdsBdsInstanceUtilNode;
    /**
    * worker_node block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#worker_node BdsBdsInstance#worker_node}
    */
    readonly workerNode: BdsBdsInstanceWorkerNode;
}
export interface BdsBdsInstanceClusterDetails {
}
export declare function bdsBdsInstanceClusterDetailsToTerraform(struct?: BdsBdsInstanceClusterDetails): any;
export declare function bdsBdsInstanceClusterDetailsToHclTerraform(struct?: BdsBdsInstanceClusterDetails): any;
export declare class BdsBdsInstanceClusterDetailsOutputReference 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(): BdsBdsInstanceClusterDetails | undefined;
    set internalValue(value: BdsBdsInstanceClusterDetails | undefined);
    get ambariUrl(): string;
    get bdCellVersion(): string;
    get bdaVersion(): string;
    get bdmVersion(): string;
    get bdsVersion(): string;
    get bigDataManagerUrl(): string;
    get clouderaManagerUrl(): string;
    get csqlCellVersion(): string;
    get dbVersion(): string;
    get hueServerUrl(): string;
    get jupyterHubUrl(): string;
    get odhVersion(): string;
    get osVersion(): string;
    get timeCreated(): string;
    get timeRefreshed(): string;
}
export declare class BdsBdsInstanceClusterDetailsList 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): BdsBdsInstanceClusterDetailsOutputReference;
}
export interface BdsBdsInstanceNodesAttachedBlockVolumes {
}
export declare function bdsBdsInstanceNodesAttachedBlockVolumesToTerraform(struct?: BdsBdsInstanceNodesAttachedBlockVolumes): any;
export declare function bdsBdsInstanceNodesAttachedBlockVolumesToHclTerraform(struct?: BdsBdsInstanceNodesAttachedBlockVolumes): any;
export declare class BdsBdsInstanceNodesAttachedBlockVolumesOutputReference 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(): BdsBdsInstanceNodesAttachedBlockVolumes | undefined;
    set internalValue(value: BdsBdsInstanceNodesAttachedBlockVolumes | undefined);
    get volumeAttachmentId(): string;
    get volumeSizeInGbs(): string;
}
export declare class BdsBdsInstanceNodesAttachedBlockVolumesList 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): BdsBdsInstanceNodesAttachedBlockVolumesOutputReference;
}
export interface BdsBdsInstanceNodes {
}
export declare function bdsBdsInstanceNodesToTerraform(struct?: BdsBdsInstanceNodes): any;
export declare function bdsBdsInstanceNodesToHclTerraform(struct?: BdsBdsInstanceNodes): any;
export declare class BdsBdsInstanceNodesOutputReference 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(): BdsBdsInstanceNodes | undefined;
    set internalValue(value: BdsBdsInstanceNodes | undefined);
    private _attachedBlockVolumes;
    get attachedBlockVolumes(): BdsBdsInstanceNodesAttachedBlockVolumesList;
    get availabilityDomain(): string;
    get displayName(): string;
    get faultDomain(): string;
    get hostname(): string;
    get imageId(): string;
    get instanceId(): string;
    get ipAddress(): string;
    get isRebootRequired(): cdktf.IResolvable;
    get localDisksTotalSizeInGbs(): number;
    get memoryInGbs(): number;
    get nodeType(): string;
    get nvmes(): number;
    get ocpus(): number;
    get osVersion(): string;
    get shape(): string;
    get sshFingerprint(): string;
    get state(): string;
    get subnetId(): string;
    get timeCreated(): string;
    get timeMaintenanceRebootDue(): string;
}
export declare class BdsBdsInstanceNodesList 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): BdsBdsInstanceNodesOutputReference;
}
export interface BdsBdsInstanceCloudSqlDetailsKerberosDetails {
}
export declare function bdsBdsInstanceCloudSqlDetailsKerberosDetailsToTerraform(struct?: BdsBdsInstanceCloudSqlDetailsKerberosDetails): any;
export declare function bdsBdsInstanceCloudSqlDetailsKerberosDetailsToHclTerraform(struct?: BdsBdsInstanceCloudSqlDetailsKerberosDetails): any;
export declare class BdsBdsInstanceCloudSqlDetailsKerberosDetailsOutputReference 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(): BdsBdsInstanceCloudSqlDetailsKerberosDetails | undefined;
    set internalValue(value: BdsBdsInstanceCloudSqlDetailsKerberosDetails | undefined);
    get keytabFile(): string;
    get principalName(): string;
}
export declare class BdsBdsInstanceCloudSqlDetailsKerberosDetailsList 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): BdsBdsInstanceCloudSqlDetailsKerberosDetailsOutputReference;
}
export interface BdsBdsInstanceCloudSqlDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#shape BdsBdsInstance#shape}
    */
    readonly shape: string;
}
export declare function bdsBdsInstanceCloudSqlDetailsToTerraform(struct?: BdsBdsInstanceCloudSqlDetails | cdktf.IResolvable): any;
export declare function bdsBdsInstanceCloudSqlDetailsToHclTerraform(struct?: BdsBdsInstanceCloudSqlDetails | cdktf.IResolvable): any;
export declare class BdsBdsInstanceCloudSqlDetailsOutputReference 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(): BdsBdsInstanceCloudSqlDetails | cdktf.IResolvable | undefined;
    set internalValue(value: BdsBdsInstanceCloudSqlDetails | cdktf.IResolvable | undefined);
    get blockVolumeSizeInGbs(): string;
    get ipAddress(): string;
    get isKerberosMappedToDatabaseUsers(): cdktf.IResolvable;
    private _kerberosDetails;
    get kerberosDetails(): BdsBdsInstanceCloudSqlDetailsKerberosDetailsList;
    get memoryInGbs(): number;
    get nvmes(): number;
    get ocpus(): number;
    private _shape?;
    get shape(): string;
    set shape(value: string);
    get shapeInput(): string | undefined;
}
export declare class BdsBdsInstanceCloudSqlDetailsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: BdsBdsInstanceCloudSqlDetails[] | 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): BdsBdsInstanceCloudSqlDetailsOutputReference;
}
export interface BdsBdsInstanceComputeOnlyWorkerNodeShapeConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#memory_in_gbs BdsBdsInstance#memory_in_gbs}
    */
    readonly memoryInGbs?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#nvmes BdsBdsInstance#nvmes}
    */
    readonly nvmes?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#ocpus BdsBdsInstance#ocpus}
    */
    readonly ocpus?: number;
}
export declare function bdsBdsInstanceComputeOnlyWorkerNodeShapeConfigToTerraform(struct?: BdsBdsInstanceComputeOnlyWorkerNodeShapeConfigOutputReference | BdsBdsInstanceComputeOnlyWorkerNodeShapeConfig): any;
export declare function bdsBdsInstanceComputeOnlyWorkerNodeShapeConfigToHclTerraform(struct?: BdsBdsInstanceComputeOnlyWorkerNodeShapeConfigOutputReference | BdsBdsInstanceComputeOnlyWorkerNodeShapeConfig): any;
export declare class BdsBdsInstanceComputeOnlyWorkerNodeShapeConfigOutputReference 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(): BdsBdsInstanceComputeOnlyWorkerNodeShapeConfig | undefined;
    set internalValue(value: BdsBdsInstanceComputeOnlyWorkerNodeShapeConfig | undefined);
    private _memoryInGbs?;
    get memoryInGbs(): number;
    set memoryInGbs(value: number);
    resetMemoryInGbs(): void;
    get memoryInGbsInput(): number | undefined;
    private _nvmes?;
    get nvmes(): number;
    set nvmes(value: number);
    resetNvmes(): void;
    get nvmesInput(): number | undefined;
    private _ocpus?;
    get ocpus(): number;
    set ocpus(value: number);
    resetOcpus(): void;
    get ocpusInput(): number | undefined;
}
export interface BdsBdsInstanceComputeOnlyWorkerNode {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#block_volume_size_in_gbs BdsBdsInstance#block_volume_size_in_gbs}
    */
    readonly blockVolumeSizeInGbs?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#number_of_nodes BdsBdsInstance#number_of_nodes}
    */
    readonly numberOfNodes: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#shape BdsBdsInstance#shape}
    */
    readonly shape: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#subnet_id BdsBdsInstance#subnet_id}
    */
    readonly subnetId: string;
    /**
    * shape_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#shape_config BdsBdsInstance#shape_config}
    */
    readonly shapeConfig?: BdsBdsInstanceComputeOnlyWorkerNodeShapeConfig;
}
export declare function bdsBdsInstanceComputeOnlyWorkerNodeToTerraform(struct?: BdsBdsInstanceComputeOnlyWorkerNodeOutputReference | BdsBdsInstanceComputeOnlyWorkerNode): any;
export declare function bdsBdsInstanceComputeOnlyWorkerNodeToHclTerraform(struct?: BdsBdsInstanceComputeOnlyWorkerNodeOutputReference | BdsBdsInstanceComputeOnlyWorkerNode): any;
export declare class BdsBdsInstanceComputeOnlyWorkerNodeOutputReference 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(): BdsBdsInstanceComputeOnlyWorkerNode | undefined;
    set internalValue(value: BdsBdsInstanceComputeOnlyWorkerNode | undefined);
    private _blockVolumeSizeInGbs?;
    get blockVolumeSizeInGbs(): string;
    set blockVolumeSizeInGbs(value: string);
    resetBlockVolumeSizeInGbs(): void;
    get blockVolumeSizeInGbsInput(): string | undefined;
    private _numberOfNodes?;
    get numberOfNodes(): number;
    set numberOfNodes(value: number);
    get numberOfNodesInput(): number | undefined;
    private _shape?;
    get shape(): string;
    set shape(value: string);
    get shapeInput(): string | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    get subnetIdInput(): string | undefined;
    private _shapeConfig;
    get shapeConfig(): BdsBdsInstanceComputeOnlyWorkerNodeShapeConfigOutputReference;
    putShapeConfig(value: BdsBdsInstanceComputeOnlyWorkerNodeShapeConfig): void;
    resetShapeConfig(): void;
    get shapeConfigInput(): BdsBdsInstanceComputeOnlyWorkerNodeShapeConfig | undefined;
}
export interface BdsBdsInstanceEdgeNodeShapeConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#memory_in_gbs BdsBdsInstance#memory_in_gbs}
    */
    readonly memoryInGbs?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#nvmes BdsBdsInstance#nvmes}
    */
    readonly nvmes?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#ocpus BdsBdsInstance#ocpus}
    */
    readonly ocpus?: number;
}
export declare function bdsBdsInstanceEdgeNodeShapeConfigToTerraform(struct?: BdsBdsInstanceEdgeNodeShapeConfigOutputReference | BdsBdsInstanceEdgeNodeShapeConfig): any;
export declare function bdsBdsInstanceEdgeNodeShapeConfigToHclTerraform(struct?: BdsBdsInstanceEdgeNodeShapeConfigOutputReference | BdsBdsInstanceEdgeNodeShapeConfig): any;
export declare class BdsBdsInstanceEdgeNodeShapeConfigOutputReference 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(): BdsBdsInstanceEdgeNodeShapeConfig | undefined;
    set internalValue(value: BdsBdsInstanceEdgeNodeShapeConfig | undefined);
    private _memoryInGbs?;
    get memoryInGbs(): number;
    set memoryInGbs(value: number);
    resetMemoryInGbs(): void;
    get memoryInGbsInput(): number | undefined;
    private _nvmes?;
    get nvmes(): number;
    set nvmes(value: number);
    resetNvmes(): void;
    get nvmesInput(): number | undefined;
    private _ocpus?;
    get ocpus(): number;
    set ocpus(value: number);
    resetOcpus(): void;
    get ocpusInput(): number | undefined;
}
export interface BdsBdsInstanceEdgeNode {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#block_volume_size_in_gbs BdsBdsInstance#block_volume_size_in_gbs}
    */
    readonly blockVolumeSizeInGbs?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#number_of_nodes BdsBdsInstance#number_of_nodes}
    */
    readonly numberOfNodes: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#shape BdsBdsInstance#shape}
    */
    readonly shape: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#subnet_id BdsBdsInstance#subnet_id}
    */
    readonly subnetId: string;
    /**
    * shape_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#shape_config BdsBdsInstance#shape_config}
    */
    readonly shapeConfig?: BdsBdsInstanceEdgeNodeShapeConfig;
}
export declare function bdsBdsInstanceEdgeNodeToTerraform(struct?: BdsBdsInstanceEdgeNodeOutputReference | BdsBdsInstanceEdgeNode): any;
export declare function bdsBdsInstanceEdgeNodeToHclTerraform(struct?: BdsBdsInstanceEdgeNodeOutputReference | BdsBdsInstanceEdgeNode): any;
export declare class BdsBdsInstanceEdgeNodeOutputReference 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(): BdsBdsInstanceEdgeNode | undefined;
    set internalValue(value: BdsBdsInstanceEdgeNode | undefined);
    private _blockVolumeSizeInGbs?;
    get blockVolumeSizeInGbs(): string;
    set blockVolumeSizeInGbs(value: string);
    resetBlockVolumeSizeInGbs(): void;
    get blockVolumeSizeInGbsInput(): string | undefined;
    private _numberOfNodes?;
    get numberOfNodes(): number;
    set numberOfNodes(value: number);
    get numberOfNodesInput(): number | undefined;
    private _shape?;
    get shape(): string;
    set shape(value: string);
    get shapeInput(): string | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    get subnetIdInput(): string | undefined;
    private _shapeConfig;
    get shapeConfig(): BdsBdsInstanceEdgeNodeShapeConfigOutputReference;
    putShapeConfig(value: BdsBdsInstanceEdgeNodeShapeConfig): void;
    resetShapeConfig(): void;
    get shapeConfigInput(): BdsBdsInstanceEdgeNodeShapeConfig | undefined;
}
export interface BdsBdsInstanceKafkaBrokerNodeShapeConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#memory_in_gbs BdsBdsInstance#memory_in_gbs}
    */
    readonly memoryInGbs?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#nvmes BdsBdsInstance#nvmes}
    */
    readonly nvmes?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#ocpus BdsBdsInstance#ocpus}
    */
    readonly ocpus?: number;
}
export declare function bdsBdsInstanceKafkaBrokerNodeShapeConfigToTerraform(struct?: BdsBdsInstanceKafkaBrokerNodeShapeConfigOutputReference | BdsBdsInstanceKafkaBrokerNodeShapeConfig): any;
export declare function bdsBdsInstanceKafkaBrokerNodeShapeConfigToHclTerraform(struct?: BdsBdsInstanceKafkaBrokerNodeShapeConfigOutputReference | BdsBdsInstanceKafkaBrokerNodeShapeConfig): any;
export declare class BdsBdsInstanceKafkaBrokerNodeShapeConfigOutputReference 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(): BdsBdsInstanceKafkaBrokerNodeShapeConfig | undefined;
    set internalValue(value: BdsBdsInstanceKafkaBrokerNodeShapeConfig | undefined);
    private _memoryInGbs?;
    get memoryInGbs(): number;
    set memoryInGbs(value: number);
    resetMemoryInGbs(): void;
    get memoryInGbsInput(): number | undefined;
    private _nvmes?;
    get nvmes(): number;
    set nvmes(value: number);
    resetNvmes(): void;
    get nvmesInput(): number | undefined;
    private _ocpus?;
    get ocpus(): number;
    set ocpus(value: number);
    resetOcpus(): void;
    get ocpusInput(): number | undefined;
}
export interface BdsBdsInstanceKafkaBrokerNode {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#block_volume_size_in_gbs BdsBdsInstance#block_volume_size_in_gbs}
    */
    readonly blockVolumeSizeInGbs?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#number_of_kafka_nodes BdsBdsInstance#number_of_kafka_nodes}
    */
    readonly numberOfKafkaNodes: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#shape BdsBdsInstance#shape}
    */
    readonly shape: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#subnet_id BdsBdsInstance#subnet_id}
    */
    readonly subnetId: string;
    /**
    * shape_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#shape_config BdsBdsInstance#shape_config}
    */
    readonly shapeConfig?: BdsBdsInstanceKafkaBrokerNodeShapeConfig;
}
export declare function bdsBdsInstanceKafkaBrokerNodeToTerraform(struct?: BdsBdsInstanceKafkaBrokerNodeOutputReference | BdsBdsInstanceKafkaBrokerNode): any;
export declare function bdsBdsInstanceKafkaBrokerNodeToHclTerraform(struct?: BdsBdsInstanceKafkaBrokerNodeOutputReference | BdsBdsInstanceKafkaBrokerNode): any;
export declare class BdsBdsInstanceKafkaBrokerNodeOutputReference 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(): BdsBdsInstanceKafkaBrokerNode | undefined;
    set internalValue(value: BdsBdsInstanceKafkaBrokerNode | undefined);
    private _blockVolumeSizeInGbs?;
    get blockVolumeSizeInGbs(): string;
    set blockVolumeSizeInGbs(value: string);
    resetBlockVolumeSizeInGbs(): void;
    get blockVolumeSizeInGbsInput(): string | undefined;
    private _numberOfKafkaNodes?;
    get numberOfKafkaNodes(): number;
    set numberOfKafkaNodes(value: number);
    get numberOfKafkaNodesInput(): number | undefined;
    private _shape?;
    get shape(): string;
    set shape(value: string);
    get shapeInput(): string | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    get subnetIdInput(): string | undefined;
    private _shapeConfig;
    get shapeConfig(): BdsBdsInstanceKafkaBrokerNodeShapeConfigOutputReference;
    putShapeConfig(value: BdsBdsInstanceKafkaBrokerNodeShapeConfig): void;
    resetShapeConfig(): void;
    get shapeConfigInput(): BdsBdsInstanceKafkaBrokerNodeShapeConfig | undefined;
}
export interface BdsBdsInstanceMasterNodeShapeConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#memory_in_gbs BdsBdsInstance#memory_in_gbs}
    */
    readonly memoryInGbs?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#nvmes BdsBdsInstance#nvmes}
    */
    readonly nvmes?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#ocpus BdsBdsInstance#ocpus}
    */
    readonly ocpus?: number;
}
export declare function bdsBdsInstanceMasterNodeShapeConfigToTerraform(struct?: BdsBdsInstanceMasterNodeShapeConfigOutputReference | BdsBdsInstanceMasterNodeShapeConfig): any;
export declare function bdsBdsInstanceMasterNodeShapeConfigToHclTerraform(struct?: BdsBdsInstanceMasterNodeShapeConfigOutputReference | BdsBdsInstanceMasterNodeShapeConfig): any;
export declare class BdsBdsInstanceMasterNodeShapeConfigOutputReference 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(): BdsBdsInstanceMasterNodeShapeConfig | undefined;
    set internalValue(value: BdsBdsInstanceMasterNodeShapeConfig | undefined);
    private _memoryInGbs?;
    get memoryInGbs(): number;
    set memoryInGbs(value: number);
    resetMemoryInGbs(): void;
    get memoryInGbsInput(): number | undefined;
    private _nvmes?;
    get nvmes(): number;
    set nvmes(value: number);
    resetNvmes(): void;
    get nvmesInput(): number | undefined;
    private _ocpus?;
    get ocpus(): number;
    set ocpus(value: number);
    resetOcpus(): void;
    get ocpusInput(): number | undefined;
}
export interface BdsBdsInstanceMasterNode {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#block_volume_size_in_gbs BdsBdsInstance#block_volume_size_in_gbs}
    */
    readonly blockVolumeSizeInGbs?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#number_of_nodes BdsBdsInstance#number_of_nodes}
    */
    readonly numberOfNodes: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#shape BdsBdsInstance#shape}
    */
    readonly shape: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#subnet_id BdsBdsInstance#subnet_id}
    */
    readonly subnetId: string;
    /**
    * shape_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#shape_config BdsBdsInstance#shape_config}
    */
    readonly shapeConfig?: BdsBdsInstanceMasterNodeShapeConfig;
}
export declare function bdsBdsInstanceMasterNodeToTerraform(struct?: BdsBdsInstanceMasterNodeOutputReference | BdsBdsInstanceMasterNode): any;
export declare function bdsBdsInstanceMasterNodeToHclTerraform(struct?: BdsBdsInstanceMasterNodeOutputReference | BdsBdsInstanceMasterNode): any;
export declare class BdsBdsInstanceMasterNodeOutputReference 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(): BdsBdsInstanceMasterNode | undefined;
    set internalValue(value: BdsBdsInstanceMasterNode | undefined);
    private _blockVolumeSizeInGbs?;
    get blockVolumeSizeInGbs(): string;
    set blockVolumeSizeInGbs(value: string);
    resetBlockVolumeSizeInGbs(): void;
    get blockVolumeSizeInGbsInput(): string | undefined;
    private _numberOfNodes?;
    get numberOfNodes(): number;
    set numberOfNodes(value: number);
    get numberOfNodesInput(): number | undefined;
    private _shape?;
    get shape(): string;
    set shape(value: string);
    get shapeInput(): string | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    get subnetIdInput(): string | undefined;
    private _shapeConfig;
    get shapeConfig(): BdsBdsInstanceMasterNodeShapeConfigOutputReference;
    putShapeConfig(value: BdsBdsInstanceMasterNodeShapeConfig): void;
    resetShapeConfig(): void;
    get shapeConfigInput(): BdsBdsInstanceMasterNodeShapeConfig | undefined;
}
export interface BdsBdsInstanceNetworkConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#cidr_block BdsBdsInstance#cidr_block}
    */
    readonly cidrBlock?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#is_nat_gateway_required BdsBdsInstance#is_nat_gateway_required}
    */
    readonly isNatGatewayRequired?: boolean | cdktf.IResolvable;
}
export declare function bdsBdsInstanceNetworkConfigToTerraform(struct?: BdsBdsInstanceNetworkConfigOutputReference | BdsBdsInstanceNetworkConfig): any;
export declare function bdsBdsInstanceNetworkConfigToHclTerraform(struct?: BdsBdsInstanceNetworkConfigOutputReference | BdsBdsInstanceNetworkConfig): any;
export declare class BdsBdsInstanceNetworkConfigOutputReference 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(): BdsBdsInstanceNetworkConfig | undefined;
    set internalValue(value: BdsBdsInstanceNetworkConfig | undefined);
    private _cidrBlock?;
    get cidrBlock(): string;
    set cidrBlock(value: string);
    resetCidrBlock(): void;
    get cidrBlockInput(): string | undefined;
    private _isNatGatewayRequired?;
    get isNatGatewayRequired(): boolean | cdktf.IResolvable;
    set isNatGatewayRequired(value: boolean | cdktf.IResolvable);
    resetIsNatGatewayRequired(): void;
    get isNatGatewayRequiredInput(): boolean | cdktf.IResolvable | undefined;
}
export interface BdsBdsInstanceTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#create BdsBdsInstance#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#delete BdsBdsInstance#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#update BdsBdsInstance#update}
    */
    readonly update?: string;
}
export declare function bdsBdsInstanceTimeoutsToTerraform(struct?: BdsBdsInstanceTimeouts | cdktf.IResolvable): any;
export declare function bdsBdsInstanceTimeoutsToHclTerraform(struct?: BdsBdsInstanceTimeouts | cdktf.IResolvable): any;
export declare class BdsBdsInstanceTimeoutsOutputReference 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(): BdsBdsInstanceTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: BdsBdsInstanceTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
export interface BdsBdsInstanceUtilNodeShapeConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#memory_in_gbs BdsBdsInstance#memory_in_gbs}
    */
    readonly memoryInGbs?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#nvmes BdsBdsInstance#nvmes}
    */
    readonly nvmes?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#ocpus BdsBdsInstance#ocpus}
    */
    readonly ocpus?: number;
}
export declare function bdsBdsInstanceUtilNodeShapeConfigToTerraform(struct?: BdsBdsInstanceUtilNodeShapeConfigOutputReference | BdsBdsInstanceUtilNodeShapeConfig): any;
export declare function bdsBdsInstanceUtilNodeShapeConfigToHclTerraform(struct?: BdsBdsInstanceUtilNodeShapeConfigOutputReference | BdsBdsInstanceUtilNodeShapeConfig): any;
export declare class BdsBdsInstanceUtilNodeShapeConfigOutputReference 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(): BdsBdsInstanceUtilNodeShapeConfig | undefined;
    set internalValue(value: BdsBdsInstanceUtilNodeShapeConfig | undefined);
    private _memoryInGbs?;
    get memoryInGbs(): number;
    set memoryInGbs(value: number);
    resetMemoryInGbs(): void;
    get memoryInGbsInput(): number | undefined;
    private _nvmes?;
    get nvmes(): number;
    set nvmes(value: number);
    resetNvmes(): void;
    get nvmesInput(): number | undefined;
    private _ocpus?;
    get ocpus(): number;
    set ocpus(value: number);
    resetOcpus(): void;
    get ocpusInput(): number | undefined;
}
export interface BdsBdsInstanceUtilNode {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#block_volume_size_in_gbs BdsBdsInstance#block_volume_size_in_gbs}
    */
    readonly blockVolumeSizeInGbs?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#number_of_nodes BdsBdsInstance#number_of_nodes}
    */
    readonly numberOfNodes: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#shape BdsBdsInstance#shape}
    */
    readonly shape: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#subnet_id BdsBdsInstance#subnet_id}
    */
    readonly subnetId: string;
    /**
    * shape_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#shape_config BdsBdsInstance#shape_config}
    */
    readonly shapeConfig?: BdsBdsInstanceUtilNodeShapeConfig;
}
export declare function bdsBdsInstanceUtilNodeToTerraform(struct?: BdsBdsInstanceUtilNodeOutputReference | BdsBdsInstanceUtilNode): any;
export declare function bdsBdsInstanceUtilNodeToHclTerraform(struct?: BdsBdsInstanceUtilNodeOutputReference | BdsBdsInstanceUtilNode): any;
export declare class BdsBdsInstanceUtilNodeOutputReference 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(): BdsBdsInstanceUtilNode | undefined;
    set internalValue(value: BdsBdsInstanceUtilNode | undefined);
    private _blockVolumeSizeInGbs?;
    get blockVolumeSizeInGbs(): string;
    set blockVolumeSizeInGbs(value: string);
    resetBlockVolumeSizeInGbs(): void;
    get blockVolumeSizeInGbsInput(): string | undefined;
    private _numberOfNodes?;
    get numberOfNodes(): number;
    set numberOfNodes(value: number);
    get numberOfNodesInput(): number | undefined;
    private _shape?;
    get shape(): string;
    set shape(value: string);
    get shapeInput(): string | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    get subnetIdInput(): string | undefined;
    private _shapeConfig;
    get shapeConfig(): BdsBdsInstanceUtilNodeShapeConfigOutputReference;
    putShapeConfig(value: BdsBdsInstanceUtilNodeShapeConfig): void;
    resetShapeConfig(): void;
    get shapeConfigInput(): BdsBdsInstanceUtilNodeShapeConfig | undefined;
}
export interface BdsBdsInstanceWorkerNodeShapeConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#memory_in_gbs BdsBdsInstance#memory_in_gbs}
    */
    readonly memoryInGbs?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#nvmes BdsBdsInstance#nvmes}
    */
    readonly nvmes?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#ocpus BdsBdsInstance#ocpus}
    */
    readonly ocpus?: number;
}
export declare function bdsBdsInstanceWorkerNodeShapeConfigToTerraform(struct?: BdsBdsInstanceWorkerNodeShapeConfigOutputReference | BdsBdsInstanceWorkerNodeShapeConfig): any;
export declare function bdsBdsInstanceWorkerNodeShapeConfigToHclTerraform(struct?: BdsBdsInstanceWorkerNodeShapeConfigOutputReference | BdsBdsInstanceWorkerNodeShapeConfig): any;
export declare class BdsBdsInstanceWorkerNodeShapeConfigOutputReference 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(): BdsBdsInstanceWorkerNodeShapeConfig | undefined;
    set internalValue(value: BdsBdsInstanceWorkerNodeShapeConfig | undefined);
    private _memoryInGbs?;
    get memoryInGbs(): number;
    set memoryInGbs(value: number);
    resetMemoryInGbs(): void;
    get memoryInGbsInput(): number | undefined;
    private _nvmes?;
    get nvmes(): number;
    set nvmes(value: number);
    resetNvmes(): void;
    get nvmesInput(): number | undefined;
    private _ocpus?;
    get ocpus(): number;
    set ocpus(value: number);
    resetOcpus(): void;
    get ocpusInput(): number | undefined;
}
export interface BdsBdsInstanceWorkerNode {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#block_volume_size_in_gbs BdsBdsInstance#block_volume_size_in_gbs}
    */
    readonly blockVolumeSizeInGbs?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#number_of_nodes BdsBdsInstance#number_of_nodes}
    */
    readonly numberOfNodes: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#shape BdsBdsInstance#shape}
    */
    readonly shape: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#subnet_id BdsBdsInstance#subnet_id}
    */
    readonly subnetId: string;
    /**
    * shape_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#shape_config BdsBdsInstance#shape_config}
    */
    readonly shapeConfig?: BdsBdsInstanceWorkerNodeShapeConfig;
}
export declare function bdsBdsInstanceWorkerNodeToTerraform(struct?: BdsBdsInstanceWorkerNodeOutputReference | BdsBdsInstanceWorkerNode): any;
export declare function bdsBdsInstanceWorkerNodeToHclTerraform(struct?: BdsBdsInstanceWorkerNodeOutputReference | BdsBdsInstanceWorkerNode): any;
export declare class BdsBdsInstanceWorkerNodeOutputReference 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(): BdsBdsInstanceWorkerNode | undefined;
    set internalValue(value: BdsBdsInstanceWorkerNode | undefined);
    private _blockVolumeSizeInGbs?;
    get blockVolumeSizeInGbs(): string;
    set blockVolumeSizeInGbs(value: string);
    resetBlockVolumeSizeInGbs(): void;
    get blockVolumeSizeInGbsInput(): string | undefined;
    private _numberOfNodes?;
    get numberOfNodes(): number;
    set numberOfNodes(value: number);
    get numberOfNodesInput(): number | undefined;
    private _shape?;
    get shape(): string;
    set shape(value: string);
    get shapeInput(): string | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    get subnetIdInput(): string | undefined;
    private _shapeConfig;
    get shapeConfig(): BdsBdsInstanceWorkerNodeShapeConfigOutputReference;
    putShapeConfig(value: BdsBdsInstanceWorkerNodeShapeConfig): void;
    resetShapeConfig(): void;
    get shapeConfigInput(): BdsBdsInstanceWorkerNodeShapeConfig | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance oci_bds_bds_instance}
*/
export declare class BdsBdsInstance extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_bds_bds_instance";
    /**
    * Generates CDKTF code for importing a BdsBdsInstance 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 BdsBdsInstance to import
    * @param importFromId The id of the existing BdsBdsInstance that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/bds_bds_instance#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the BdsBdsInstance 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/oracle/oci/6.18.0/docs/resources/bds_bds_instance oci_bds_bds_instance} 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 BdsBdsInstanceConfig
    */
    constructor(scope: Construct, id: string, config: BdsBdsInstanceConfig);
    private _bootstrapScriptUrl?;
    get bootstrapScriptUrl(): string;
    set bootstrapScriptUrl(value: string);
    resetBootstrapScriptUrl(): void;
    get bootstrapScriptUrlInput(): string | undefined;
    private _clusterAdminPassword?;
    get clusterAdminPassword(): string;
    set clusterAdminPassword(value: string);
    get clusterAdminPasswordInput(): string | undefined;
    private _clusterDetails;
    get clusterDetails(): BdsBdsInstanceClusterDetailsList;
    private _clusterProfile?;
    get clusterProfile(): string;
    set clusterProfile(value: string);
    resetClusterProfile(): void;
    get clusterProfileInput(): string | undefined;
    private _clusterPublicKey?;
    get clusterPublicKey(): string;
    set clusterPublicKey(value: string);
    get clusterPublicKeyInput(): string | undefined;
    private _clusterVersion?;
    get clusterVersion(): string;
    set clusterVersion(value: string);
    get clusterVersionInput(): string | undefined;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    get createdBy(): string;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    get displayNameInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _ignoreExistingNodesShape?;
    get ignoreExistingNodesShape(): string[];
    set ignoreExistingNodesShape(value: string[]);
    resetIgnoreExistingNodesShape(): void;
    get ignoreExistingNodesShapeInput(): string[] | undefined;
    private _isCloudSqlConfigured?;
    get isCloudSqlConfigured(): boolean | cdktf.IResolvable;
    set isCloudSqlConfigured(value: boolean | cdktf.IResolvable);
    resetIsCloudSqlConfigured(): void;
    get isCloudSqlConfiguredInput(): boolean | cdktf.IResolvable | undefined;
    private _isForceStopJobs?;
    get isForceStopJobs(): boolean | cdktf.IResolvable;
    set isForceStopJobs(value: boolean | cdktf.IResolvable);
    resetIsForceStopJobs(): void;
    get isForceStopJobsInput(): boolean | cdktf.IResolvable | undefined;
    private _isHighAvailability?;
    get isHighAvailability(): boolean | cdktf.IResolvable;
    set isHighAvailability(value: boolean | cdktf.IResolvable);
    get isHighAvailabilityInput(): boolean | cdktf.IResolvable | undefined;
    private _isKafkaConfigured?;
    get isKafkaConfigured(): boolean | cdktf.IResolvable;
    set isKafkaConfigured(value: boolean | cdktf.IResolvable);
    resetIsKafkaConfigured(): void;
    get isKafkaConfiguredInput(): boolean | cdktf.IResolvable | undefined;
    private _isSecure?;
    get isSecure(): boolean | cdktf.IResolvable;
    set isSecure(value: boolean | cdktf.IResolvable);
    get isSecureInput(): boolean | cdktf.IResolvable | undefined;
    private _kerberosRealmName?;
    get kerberosRealmName(): string;
    set kerberosRealmName(value: string);
    resetKerberosRealmName(): void;
    get kerberosRealmNameInput(): string | undefined;
    private _kmsKeyId?;
    get kmsKeyId(): string;
    set kmsKeyId(value: string);
    resetKmsKeyId(): void;
    get kmsKeyIdInput(): string | undefined;
    private _nodes;
    get nodes(): BdsBdsInstanceNodesList;
    get numberOfNodes(): number;
    get numberOfNodesRequiringMaintenanceReboot(): number;
    private _osPatchVersion?;
    get osPatchVersion(): string;
    set osPatchVersion(value: string);
    resetOsPatchVersion(): void;
    get osPatchVersionInput(): string | undefined;
    private _state?;
    get state(): string;
    set state(value: string);
    resetState(): void;
    get stateInput(): string | undefined;
    get timeCreated(): string;
    get timeUpdated(): string;
    private _cloudSqlDetails;
    get cloudSqlDetails(): BdsBdsInstanceCloudSqlDetailsList;
    putCloudSqlDetails(value: BdsBdsInstanceCloudSqlDetails[] | cdktf.IResolvable): void;
    resetCloudSqlDetails(): void;
    get cloudSqlDetailsInput(): cdktf.IResolvable | BdsBdsInstanceCloudSqlDetails[] | undefined;
    private _computeOnlyWorkerNode;
    get computeOnlyWorkerNode(): BdsBdsInstanceComputeOnlyWorkerNodeOutputReference;
    putComputeOnlyWorkerNode(value: BdsBdsInstanceComputeOnlyWorkerNode): void;
    resetComputeOnlyWorkerNode(): void;
    get computeOnlyWorkerNodeInput(): BdsBdsInstanceComputeOnlyWorkerNode | undefined;
    private _edgeNode;
    get edgeNode(): BdsBdsInstanceEdgeNodeOutputReference;
    putEdgeNode(value: BdsBdsInstanceEdgeNode): void;
    resetEdgeNode(): void;
    get edgeNodeInput(): BdsBdsInstanceEdgeNode | undefined;
    private _kafkaBrokerNode;
    get kafkaBrokerNode(): BdsBdsInstanceKafkaBrokerNodeOutputReference;
    putKafkaBrokerNode(value: BdsBdsInstanceKafkaBrokerNode): void;
    resetKafkaBrokerNode(): void;
    get kafkaBrokerNodeInput(): BdsBdsInstanceKafkaBrokerNode | undefined;
    private _masterNode;
    get masterNode(): BdsBdsInstanceMasterNodeOutputReference;
    putMasterNode(value: BdsBdsInstanceMasterNode): void;
    get masterNodeInput(): BdsBdsInstanceMasterNode | undefined;
    private _networkConfig;
    get networkConfig(): BdsBdsInstanceNetworkConfigOutputReference;
    putNetworkConfig(value: BdsBdsInstanceNetworkConfig): void;
    resetNetworkConfig(): void;
    get networkConfigInput(): BdsBdsInstanceNetworkConfig | undefined;
    private _timeouts;
    get timeouts(): BdsBdsInstanceTimeoutsOutputReference;
    putTimeouts(value: BdsBdsInstanceTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | BdsBdsInstanceTimeouts | undefined;
    private _utilNode;
    get utilNode(): BdsBdsInstanceUtilNodeOutputReference;
    putUtilNode(value: BdsBdsInstanceUtilNode): void;
    get utilNodeInput(): BdsBdsInstanceUtilNode | undefined;
    private _workerNode;
    get workerNode(): BdsBdsInstanceWorkerNodeOutputReference;
    putWorkerNode(value: BdsBdsInstanceWorkerNode): void;
    get workerNodeInput(): BdsBdsInstanceWorkerNode | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
