import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciCoreInstancePoolConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/core_instance_pool#instance_pool_id DataOciCoreInstancePool#instance_pool_id}
    */
    readonly instancePoolId: string;
}
export interface DataOciCoreInstancePoolLoadBalancers {
}
export declare function dataOciCoreInstancePoolLoadBalancersToTerraform(struct?: DataOciCoreInstancePoolLoadBalancers): any;
export declare function dataOciCoreInstancePoolLoadBalancersToHclTerraform(struct?: DataOciCoreInstancePoolLoadBalancers): any;
export declare class DataOciCoreInstancePoolLoadBalancersOutputReference 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(): DataOciCoreInstancePoolLoadBalancers | undefined;
    set internalValue(value: DataOciCoreInstancePoolLoadBalancers | undefined);
    get backendSetName(): string;
    get id(): string;
    get instancePoolId(): string;
    get loadBalancerId(): string;
    get port(): number;
    get state(): string;
    get vnicSelection(): string;
}
export declare class DataOciCoreInstancePoolLoadBalancersList 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): DataOciCoreInstancePoolLoadBalancersOutputReference;
}
export interface DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails {
}
export declare function dataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsToTerraform(struct?: DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails): any;
export declare function dataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsToHclTerraform(struct?: DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails): any;
export declare class DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference 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(): DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails | undefined;
    set internalValue(value: DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails | undefined);
    get ipv6SubnetCidr(): string;
}
export declare class DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsList 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): DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference;
}
export interface DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnets {
}
export declare function dataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsToTerraform(struct?: DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnets): any;
export declare function dataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsToHclTerraform(struct?: DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnets): any;
export declare class DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsOutputReference 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(): DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnets | undefined;
    set internalValue(value: DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnets | undefined);
    private _ipv6AddressIpv6SubnetCidrPairDetails;
    get ipv6AddressIpv6SubnetCidrPairDetails(): DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsList;
    get isAssignIpv6Ip(): cdktf.IResolvable;
    get subnetId(): string;
}
export declare class DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsList 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): DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsOutputReference;
}
export interface DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails {
}
export declare function dataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsToTerraform(struct?: DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails): any;
export declare function dataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsToHclTerraform(struct?: DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails): any;
export declare class DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference 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(): DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails | undefined;
    set internalValue(value: DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetails | undefined);
    get ipv6SubnetCidr(): string;
}
export declare class DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsList 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): DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsOutputReference;
}
export interface DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets {
}
export declare function dataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsToTerraform(struct?: DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets): any;
export declare function dataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsToHclTerraform(struct?: DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets): any;
export declare class DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsOutputReference 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(): DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets | undefined;
    set internalValue(value: DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnets | undefined);
    get displayName(): string;
    private _ipv6AddressIpv6SubnetCidrPairDetails;
    get ipv6AddressIpv6SubnetCidrPairDetails(): DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6AddressIpv6SubnetCidrPairDetailsList;
    get isAssignIpv6Ip(): cdktf.IResolvable;
    get subnetId(): string;
}
export declare class DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsList 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): DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsOutputReference;
}
export interface DataOciCoreInstancePoolPlacementConfigurations {
}
export declare function dataOciCoreInstancePoolPlacementConfigurationsToTerraform(struct?: DataOciCoreInstancePoolPlacementConfigurations): any;
export declare function dataOciCoreInstancePoolPlacementConfigurationsToHclTerraform(struct?: DataOciCoreInstancePoolPlacementConfigurations): any;
export declare class DataOciCoreInstancePoolPlacementConfigurationsOutputReference 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(): DataOciCoreInstancePoolPlacementConfigurations | undefined;
    set internalValue(value: DataOciCoreInstancePoolPlacementConfigurations | undefined);
    get availabilityDomain(): string;
    get faultDomains(): string[];
    get primarySubnetId(): string;
    private _primaryVnicSubnets;
    get primaryVnicSubnets(): DataOciCoreInstancePoolPlacementConfigurationsPrimaryVnicSubnetsList;
    private _secondaryVnicSubnets;
    get secondaryVnicSubnets(): DataOciCoreInstancePoolPlacementConfigurationsSecondaryVnicSubnetsList;
}
export declare class DataOciCoreInstancePoolPlacementConfigurationsList 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): DataOciCoreInstancePoolPlacementConfigurationsOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/core_instance_pool oci_core_instance_pool}
*/
export declare class DataOciCoreInstancePool extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_core_instance_pool";
    /**
    * Generates CDKTF code for importing a DataOciCoreInstancePool 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 DataOciCoreInstancePool to import
    * @param importFromId The id of the existing DataOciCoreInstancePool that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/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 DataOciCoreInstancePool 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/data-sources/core_instance_pool oci_core_instance_pool} Data Source
    *
    * @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 DataOciCoreInstancePoolConfig
    */
    constructor(scope: Construct, id: string, config: DataOciCoreInstancePoolConfig);
    get actualSize(): number;
    get compartmentId(): string;
    private _definedTags;
    get definedTags(): cdktf.StringMap;
    get displayName(): string;
    private _freeformTags;
    get freeformTags(): cdktf.StringMap;
    get id(): string;
    get instanceConfigurationId(): string;
    get instanceDisplayNameFormatter(): string;
    get instanceHostnameFormatter(): string;
    private _instancePoolId?;
    get instancePoolId(): string;
    set instancePoolId(value: string);
    get instancePoolIdInput(): string | undefined;
    private _loadBalancers;
    get loadBalancers(): DataOciCoreInstancePoolLoadBalancersList;
    private _placementConfigurations;
    get placementConfigurations(): DataOciCoreInstancePoolPlacementConfigurationsList;
    get size(): number;
    get state(): string;
    get timeCreated(): string;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
