import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface CoreInstancePoolConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#compartment_id CoreInstancePool#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#defined_tags CoreInstancePool#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#display_name CoreInstancePool#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#freeform_tags CoreInstancePool#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#id CoreInstancePool#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/core_instance_pool#instance_configuration_id CoreInstancePool#instance_configuration_id}
    */
    readonly instanceConfigurationId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#instance_display_name_formatter CoreInstancePool#instance_display_name_formatter}
    */
    readonly instanceDisplayNameFormatter?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#instance_hostname_formatter CoreInstancePool#instance_hostname_formatter}
    */
    readonly instanceHostnameFormatter?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#size CoreInstancePool#size}
    */
    readonly size: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#state CoreInstancePool#state}
    */
    readonly state?: string;
    /**
    * load_balancers block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#load_balancers CoreInstancePool#load_balancers}
    */
    readonly loadBalancers?: CoreInstancePoolLoadBalancers[] | cdktf.IResolvable;
    /**
    * placement_configurations block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#placement_configurations CoreInstancePool#placement_configurations}
    */
    readonly placementConfigurations: CoreInstancePoolPlacementConfigurations[] | cdktf.IResolvable;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#timeouts CoreInstancePool#timeouts}
    */
    readonly timeouts?: CoreInstancePoolTimeouts;
}
export interface CoreInstancePoolLoadBalancers {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#backend_set_name CoreInstancePool#backend_set_name}
    */
    readonly backendSetName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#load_balancer_id CoreInstancePool#load_balancer_id}
    */
    readonly loadBalancerId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#port CoreInstancePool#port}
    */
    readonly port: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#vnic_selection CoreInstancePool#vnic_selection}
    */
    readonly vnicSelection: string;
}
export declare function coreInstancePoolLoadBalancersToTerraform(struct?: CoreInstancePoolLoadBalancers | cdktf.IResolvable): any;
export declare function coreInstancePoolLoadBalancersToHclTerraform(struct?: CoreInstancePoolLoadBalancers | cdktf.IResolvable): any;
export declare class CoreInstancePoolLoadBalancersOutputReference 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(): CoreInstancePoolLoadBalancers | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstancePoolLoadBalancers | cdktf.IResolvable | undefined);
    private _backendSetName?;
    get backendSetName(): string;
    set backendSetName(value: string);
    get backendSetNameInput(): string | undefined;
    get id(): string;
    get instancePoolId(): string;
    private _loadBalancerId?;
    get loadBalancerId(): string;
    set loadBalancerId(value: string);
    get loadBalancerIdInput(): string | undefined;
    private _port?;
    get port(): number;
    set port(value: number);
    get portInput(): number | undefined;
    get state(): string;
    private _vnicSelection?;
    get vnicSelection(): string;
    set vnicSelection(value: string);
    get vnicSelectionInput(): string | undefined;
}
export declare class CoreInstancePoolLoadBalancersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstancePoolLoadBalancers[] | 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): CoreInstancePoolLoadBalancersOutputReference;
}
export interface CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#ipv6subnet_cidr CoreInstancePool#ipv6subnet_cidr}
    */
    readonly ipv6SubnetCidr?: string;
}
export declare function coreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsToTerraform(struct?: CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare function coreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsToHclTerraform(struct?: CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare class CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference 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(): CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable | undefined);
    private _ipv6SubnetCidr?;
    get ipv6SubnetCidr(): string;
    set ipv6SubnetCidr(value: string);
    resetIpv6SubnetCidr(): void;
    get ipv6SubnetCidrInput(): string | undefined;
}
export declare class CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails[] | 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): CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference;
}
export interface CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnets {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#is_assign_ipv6ip CoreInstancePool#is_assign_ipv6ip}
    */
    readonly isAssignIpv6Ip?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#subnet_id CoreInstancePool#subnet_id}
    */
    readonly subnetId: string;
    /**
    * ipv6address_ipv6subnet_cidr_pair_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#ipv6address_ipv6subnet_cidr_pair_details CoreInstancePool#ipv6address_ipv6subnet_cidr_pair_details}
    */
    readonly ipv6AddressIpv6SubnetCidrPairDetails?: CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable;
}
export declare function coreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsToTerraform(struct?: CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsOutputReference | CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnets): any;
export declare function coreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsToHclTerraform(struct?: CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsOutputReference | CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnets): any;
export declare class CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsOutputReference 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(): CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnets | undefined;
    set internalValue(value: CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnets | undefined);
    private _isAssignIpv6Ip?;
    get isAssignIpv6Ip(): boolean | cdktf.IResolvable;
    set isAssignIpv6Ip(value: boolean | cdktf.IResolvable);
    resetIsAssignIpv6Ip(): void;
    get isAssignIpv6IpInput(): boolean | cdktf.IResolvable | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    get subnetIdInput(): string | undefined;
    private _ipv6AddressIpv6SubnetCidrPairDetails;
    get ipv6AddressIpv6SubnetCidrPairDetails(): CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsList;
    putIpv6AddressIpv6SubnetCidrPairDetails(value: CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable): void;
    resetIpv6AddressIpv6SubnetCidrPairDetails(): void;
    get ipv6AddressIpv6SubnetCidrPairDetailsInput(): cdktf.IResolvable | CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails[] | undefined;
}
export interface CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#ipv6subnet_cidr CoreInstancePool#ipv6subnet_cidr}
    */
    readonly ipv6SubnetCidr?: string;
}
export declare function coreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsToTerraform(struct?: CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare function coreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsToHclTerraform(struct?: CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable): any;
export declare class CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference 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(): CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails | cdktf.IResolvable | undefined);
    private _ipv6SubnetCidr?;
    get ipv6SubnetCidr(): string;
    set ipv6SubnetCidr(value: string);
    resetIpv6SubnetCidr(): void;
    get ipv6SubnetCidrInput(): string | undefined;
}
export declare class CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails[] | 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): CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference;
}
export interface CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#display_name CoreInstancePool#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#is_assign_ipv6ip CoreInstancePool#is_assign_ipv6ip}
    */
    readonly isAssignIpv6Ip?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#subnet_id CoreInstancePool#subnet_id}
    */
    readonly subnetId: string;
    /**
    * ipv6address_ipv6subnet_cidr_pair_details block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#ipv6address_ipv6subnet_cidr_pair_details CoreInstancePool#ipv6address_ipv6subnet_cidr_pair_details}
    */
    readonly ipv6AddressIpv6SubnetCidrPairDetails?: CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable;
}
export declare function coreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsToTerraform(struct?: CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets | cdktf.IResolvable): any;
export declare function coreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsToHclTerraform(struct?: CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets | cdktf.IResolvable): any;
export declare class CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsOutputReference 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(): CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets | cdktf.IResolvable | undefined);
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _isAssignIpv6Ip?;
    get isAssignIpv6Ip(): boolean | cdktf.IResolvable;
    set isAssignIpv6Ip(value: boolean | cdktf.IResolvable);
    resetIsAssignIpv6Ip(): void;
    get isAssignIpv6IpInput(): boolean | cdktf.IResolvable | undefined;
    private _subnetId?;
    get subnetId(): string;
    set subnetId(value: string);
    get subnetIdInput(): string | undefined;
    private _ipv6AddressIpv6SubnetCidrPairDetails;
    get ipv6AddressIpv6SubnetCidrPairDetails(): CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsList;
    putIpv6AddressIpv6SubnetCidrPairDetails(value: CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails[] | cdktf.IResolvable): void;
    resetIpv6AddressIpv6SubnetCidrPairDetails(): void;
    get ipv6AddressIpv6SubnetCidrPairDetailsInput(): cdktf.IResolvable | CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails[] | undefined;
}
export declare class CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets[] | 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): CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsOutputReference;
}
export interface CoreInstancePoolPlacementConfigurations {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#availability_domain CoreInstancePool#availability_domain}
    */
    readonly availabilityDomain: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#fault_domains CoreInstancePool#fault_domains}
    */
    readonly faultDomains?: string[];
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#primary_subnet_id CoreInstancePool#primary_subnet_id}
    */
    readonly primarySubnetId?: string;
    /**
    * primary_vnic_subnets block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#primary_vnic_subnets CoreInstancePool#primary_vnic_subnets}
    */
    readonly primaryVnicSubnets?: CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnets;
    /**
    * secondary_vnic_subnets block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#secondary_vnic_subnets CoreInstancePool#secondary_vnic_subnets}
    */
    readonly secondaryVnicSubnets?: CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets[] | cdktf.IResolvable;
}
export declare function coreInstancePoolPlacementConfigurationsToTerraform(struct?: CoreInstancePoolPlacementConfigurations | cdktf.IResolvable): any;
export declare function coreInstancePoolPlacementConfigurationsToHclTerraform(struct?: CoreInstancePoolPlacementConfigurations | cdktf.IResolvable): any;
export declare class CoreInstancePoolPlacementConfigurationsOutputReference 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(): CoreInstancePoolPlacementConfigurations | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstancePoolPlacementConfigurations | cdktf.IResolvable | undefined);
    private _availabilityDomain?;
    get availabilityDomain(): string;
    set availabilityDomain(value: string);
    get availabilityDomainInput(): string | undefined;
    private _faultDomains?;
    get faultDomains(): string[];
    set faultDomains(value: string[]);
    resetFaultDomains(): void;
    get faultDomainsInput(): string[] | undefined;
    private _primarySubnetId?;
    get primarySubnetId(): string;
    set primarySubnetId(value: string);
    resetPrimarySubnetId(): void;
    get primarySubnetIdInput(): string | undefined;
    private _primaryVnicSubnets;
    get primaryVnicSubnets(): CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsOutputReference;
    putPrimaryVnicSubnets(value: CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnets): void;
    resetPrimaryVnicSubnets(): void;
    get primaryVnicSubnetsInput(): CoreInstancePoolPlacementConfigurationsPrimaryVnicSubnets | undefined;
    private _secondaryVnicSubnets;
    get secondaryVnicSubnets(): CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsList;
    putSecondaryVnicSubnets(value: CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets[] | cdktf.IResolvable): void;
    resetSecondaryVnicSubnets(): void;
    get secondaryVnicSubnetsInput(): cdktf.IResolvable | CoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets[] | undefined;
}
export declare class CoreInstancePoolPlacementConfigurationsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreInstancePoolPlacementConfigurations[] | 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): CoreInstancePoolPlacementConfigurationsOutputReference;
}
export interface CoreInstancePoolTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#create CoreInstancePool#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#delete CoreInstancePool#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#update CoreInstancePool#update}
    */
    readonly update?: string;
}
export declare function coreInstancePoolTimeoutsToTerraform(struct?: CoreInstancePoolTimeouts | cdktf.IResolvable): any;
export declare function coreInstancePoolTimeoutsToHclTerraform(struct?: CoreInstancePoolTimeouts | cdktf.IResolvable): any;
export declare class CoreInstancePoolTimeoutsOutputReference 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(): CoreInstancePoolTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: CoreInstancePoolTimeouts | 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/oracle/oci/6.18.0/docs/resources/core_instance_pool oci_core_instance_pool}
*/
export declare class CoreInstancePool extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_core_instance_pool";
    /**
    * Generates CDKTF code for importing a CoreInstancePool 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 CoreInstancePool to import
    * @param importFromId The id of the existing CoreInstancePool that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_instance_pool#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the CoreInstancePool 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/core_instance_pool oci_core_instance_pool} 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 CoreInstancePoolConfig
    */
    constructor(scope: Construct, id: string, config: CoreInstancePoolConfig);
    get actualSize(): number;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    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);
    resetDisplayName(): void;
    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 _instanceConfigurationId?;
    get instanceConfigurationId(): string;
    set instanceConfigurationId(value: string);
    get instanceConfigurationIdInput(): string | undefined;
    private _instanceDisplayNameFormatter?;
    get instanceDisplayNameFormatter(): string;
    set instanceDisplayNameFormatter(value: string);
    resetInstanceDisplayNameFormatter(): void;
    get instanceDisplayNameFormatterInput(): string | undefined;
    private _instanceHostnameFormatter?;
    get instanceHostnameFormatter(): string;
    set instanceHostnameFormatter(value: string);
    resetInstanceHostnameFormatter(): void;
    get instanceHostnameFormatterInput(): string | undefined;
    private _size?;
    get size(): number;
    set size(value: number);
    get sizeInput(): number | undefined;
    private _state?;
    get state(): string;
    set state(value: string);
    resetState(): void;
    get stateInput(): string | undefined;
    get timeCreated(): string;
    private _loadBalancers;
    get loadBalancers(): CoreInstancePoolLoadBalancersList;
    putLoadBalancers(value: CoreInstancePoolLoadBalancers[] | cdktf.IResolvable): void;
    resetLoadBalancers(): void;
    get loadBalancersInput(): cdktf.IResolvable | CoreInstancePoolLoadBalancers[] | undefined;
    private _placementConfigurations;
    get placementConfigurations(): CoreInstancePoolPlacementConfigurationsList;
    putPlacementConfigurations(value: CoreInstancePoolPlacementConfigurations[] | cdktf.IResolvable): void;
    get placementConfigurationsInput(): cdktf.IResolvable | CoreInstancePoolPlacementConfigurations[] | undefined;
    private _timeouts;
    get timeouts(): CoreInstancePoolTimeoutsOutputReference;
    putTimeouts(value: CoreInstancePoolTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | CoreInstancePoolTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
