import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciDnsZonesConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#compartment_id DataOciDnsZones#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#dnssec_state DataOciDnsZones#dnssec_state}
    */
    readonly dnssecState?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#id DataOciDnsZones#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/data-sources/dns_zones#name DataOciDnsZones#name}
    */
    readonly name?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#name_contains DataOciDnsZones#name_contains}
    */
    readonly nameContains?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#scope DataOciDnsZones#scope}
    */
    readonly scope?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#sort_by DataOciDnsZones#sort_by}
    */
    readonly sortBy?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#sort_order DataOciDnsZones#sort_order}
    */
    readonly sortOrder?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#state DataOciDnsZones#state}
    */
    readonly state?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#time_created_greater_than_or_equal_to DataOciDnsZones#time_created_greater_than_or_equal_to}
    */
    readonly timeCreatedGreaterThanOrEqualTo?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#time_created_less_than DataOciDnsZones#time_created_less_than}
    */
    readonly timeCreatedLessThan?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#tsig_key_id DataOciDnsZones#tsig_key_id}
    */
    readonly tsigKeyId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#view_id DataOciDnsZones#view_id}
    */
    readonly viewId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#zone_type DataOciDnsZones#zone_type}
    */
    readonly zoneType?: string;
    /**
    * filter block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#filter DataOciDnsZones#filter}
    */
    readonly filter?: DataOciDnsZonesFilter[] | cdktf.IResolvable;
}
export interface DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsDsData {
}
export declare function dataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsDsDataToTerraform(struct?: DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsDsData): any;
export declare function dataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsDsDataToHclTerraform(struct?: DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsDsData): any;
export declare class DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsDsDataOutputReference 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(): DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsDsData | undefined;
    set internalValue(value: DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsDsData | undefined);
    get digestType(): string;
    get rdata(): string;
}
export declare class DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsDsDataList 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): DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsDsDataOutputReference;
}
export interface DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersions {
}
export declare function dataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsToTerraform(struct?: DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersions): any;
export declare function dataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsToHclTerraform(struct?: DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersions): any;
export declare class DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsOutputReference 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(): DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersions | undefined;
    set internalValue(value: DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersions | undefined);
    get algorithm(): string;
    private _dsData;
    get dsData(): DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsDsDataList;
    get keyTag(): number;
    get lengthInBytes(): number;
    get predecessorDnssecKeyVersionUuid(): string;
    get successorDnssecKeyVersionUuid(): string;
    get timeActivated(): string;
    get timeCreated(): string;
    get timeExpired(): string;
    get timeInactivated(): string;
    get timePromoted(): string;
    get timePublished(): string;
    get timeUnpublished(): string;
    get uuid(): string;
}
export declare class DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsList 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): DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsOutputReference;
}
export interface DataOciDnsZonesZonesDnssecConfigZskDnssecKeyVersions {
}
export declare function dataOciDnsZonesZonesDnssecConfigZskDnssecKeyVersionsToTerraform(struct?: DataOciDnsZonesZonesDnssecConfigZskDnssecKeyVersions): any;
export declare function dataOciDnsZonesZonesDnssecConfigZskDnssecKeyVersionsToHclTerraform(struct?: DataOciDnsZonesZonesDnssecConfigZskDnssecKeyVersions): any;
export declare class DataOciDnsZonesZonesDnssecConfigZskDnssecKeyVersionsOutputReference 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(): DataOciDnsZonesZonesDnssecConfigZskDnssecKeyVersions | undefined;
    set internalValue(value: DataOciDnsZonesZonesDnssecConfigZskDnssecKeyVersions | undefined);
    get algorithm(): string;
    get keyTag(): number;
    get lengthInBytes(): number;
    get predecessorDnssecKeyVersionUuid(): string;
    get successorDnssecKeyVersionUuid(): string;
    get timeActivated(): string;
    get timeCreated(): string;
    get timeExpired(): string;
    get timeInactivated(): string;
    get timePromoted(): string;
    get timePublished(): string;
    get timeUnpublished(): string;
    get uuid(): string;
}
export declare class DataOciDnsZonesZonesDnssecConfigZskDnssecKeyVersionsList 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): DataOciDnsZonesZonesDnssecConfigZskDnssecKeyVersionsOutputReference;
}
export interface DataOciDnsZonesZonesDnssecConfig {
}
export declare function dataOciDnsZonesZonesDnssecConfigToTerraform(struct?: DataOciDnsZonesZonesDnssecConfig): any;
export declare function dataOciDnsZonesZonesDnssecConfigToHclTerraform(struct?: DataOciDnsZonesZonesDnssecConfig): any;
export declare class DataOciDnsZonesZonesDnssecConfigOutputReference 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(): DataOciDnsZonesZonesDnssecConfig | undefined;
    set internalValue(value: DataOciDnsZonesZonesDnssecConfig | undefined);
    private _kskDnssecKeyVersions;
    get kskDnssecKeyVersions(): DataOciDnsZonesZonesDnssecConfigKskDnssecKeyVersionsList;
    private _zskDnssecKeyVersions;
    get zskDnssecKeyVersions(): DataOciDnsZonesZonesDnssecConfigZskDnssecKeyVersionsList;
}
export declare class DataOciDnsZonesZonesDnssecConfigList 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): DataOciDnsZonesZonesDnssecConfigOutputReference;
}
export interface DataOciDnsZonesZonesExternalDownstreams {
}
export declare function dataOciDnsZonesZonesExternalDownstreamsToTerraform(struct?: DataOciDnsZonesZonesExternalDownstreams): any;
export declare function dataOciDnsZonesZonesExternalDownstreamsToHclTerraform(struct?: DataOciDnsZonesZonesExternalDownstreams): any;
export declare class DataOciDnsZonesZonesExternalDownstreamsOutputReference 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(): DataOciDnsZonesZonesExternalDownstreams | undefined;
    set internalValue(value: DataOciDnsZonesZonesExternalDownstreams | undefined);
    get address(): string;
    get port(): number;
    get tsigKeyId(): string;
}
export declare class DataOciDnsZonesZonesExternalDownstreamsList 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): DataOciDnsZonesZonesExternalDownstreamsOutputReference;
}
export interface DataOciDnsZonesZonesExternalMasters {
}
export declare function dataOciDnsZonesZonesExternalMastersToTerraform(struct?: DataOciDnsZonesZonesExternalMasters): any;
export declare function dataOciDnsZonesZonesExternalMastersToHclTerraform(struct?: DataOciDnsZonesZonesExternalMasters): any;
export declare class DataOciDnsZonesZonesExternalMastersOutputReference 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(): DataOciDnsZonesZonesExternalMasters | undefined;
    set internalValue(value: DataOciDnsZonesZonesExternalMasters | undefined);
    get address(): string;
    get port(): number;
    get tsigKeyId(): string;
}
export declare class DataOciDnsZonesZonesExternalMastersList 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): DataOciDnsZonesZonesExternalMastersOutputReference;
}
export interface DataOciDnsZonesZonesNameservers {
}
export declare function dataOciDnsZonesZonesNameserversToTerraform(struct?: DataOciDnsZonesZonesNameservers): any;
export declare function dataOciDnsZonesZonesNameserversToHclTerraform(struct?: DataOciDnsZonesZonesNameservers): any;
export declare class DataOciDnsZonesZonesNameserversOutputReference 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(): DataOciDnsZonesZonesNameservers | undefined;
    set internalValue(value: DataOciDnsZonesZonesNameservers | undefined);
    get hostname(): string;
}
export declare class DataOciDnsZonesZonesNameserversList 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): DataOciDnsZonesZonesNameserversOutputReference;
}
export interface DataOciDnsZonesZonesZoneTransferServers {
}
export declare function dataOciDnsZonesZonesZoneTransferServersToTerraform(struct?: DataOciDnsZonesZonesZoneTransferServers): any;
export declare function dataOciDnsZonesZonesZoneTransferServersToHclTerraform(struct?: DataOciDnsZonesZonesZoneTransferServers): any;
export declare class DataOciDnsZonesZonesZoneTransferServersOutputReference 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(): DataOciDnsZonesZonesZoneTransferServers | undefined;
    set internalValue(value: DataOciDnsZonesZonesZoneTransferServers | undefined);
    get address(): string;
    get isTransferDestination(): cdktf.IResolvable;
    get isTransferSource(): cdktf.IResolvable;
    get port(): number;
}
export declare class DataOciDnsZonesZonesZoneTransferServersList 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): DataOciDnsZonesZonesZoneTransferServersOutputReference;
}
export interface DataOciDnsZonesZones {
}
export declare function dataOciDnsZonesZonesToTerraform(struct?: DataOciDnsZonesZones): any;
export declare function dataOciDnsZonesZonesToHclTerraform(struct?: DataOciDnsZonesZones): any;
export declare class DataOciDnsZonesZonesOutputReference 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(): DataOciDnsZonesZones | undefined;
    set internalValue(value: DataOciDnsZonesZones | undefined);
    get compartmentId(): string;
    private _definedTags;
    get definedTags(): cdktf.StringMap;
    private _dnssecConfig;
    get dnssecConfig(): DataOciDnsZonesZonesDnssecConfigList;
    get dnssecState(): string;
    private _externalDownstreams;
    get externalDownstreams(): DataOciDnsZonesZonesExternalDownstreamsList;
    private _externalMasters;
    get externalMasters(): DataOciDnsZonesZonesExternalMastersList;
    private _freeformTags;
    get freeformTags(): cdktf.StringMap;
    get id(): string;
    get isProtected(): cdktf.IResolvable;
    get name(): string;
    private _nameservers;
    get nameservers(): DataOciDnsZonesZonesNameserversList;
    get scope(): string;
    get selfAttribute(): string;
    get serial(): number;
    get state(): string;
    get timeCreated(): string;
    get version(): string;
    get viewId(): string;
    private _zoneTransferServers;
    get zoneTransferServers(): DataOciDnsZonesZonesZoneTransferServersList;
    get zoneType(): string;
}
export declare class DataOciDnsZonesZonesList 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): DataOciDnsZonesZonesOutputReference;
}
export interface DataOciDnsZonesFilter {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#name DataOciDnsZones#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#regex DataOciDnsZones#regex}
    */
    readonly regex?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#values DataOciDnsZones#values}
    */
    readonly values: string[];
}
export declare function dataOciDnsZonesFilterToTerraform(struct?: DataOciDnsZonesFilter | cdktf.IResolvable): any;
export declare function dataOciDnsZonesFilterToHclTerraform(struct?: DataOciDnsZonesFilter | cdktf.IResolvable): any;
export declare class DataOciDnsZonesFilterOutputReference 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(): DataOciDnsZonesFilter | cdktf.IResolvable | undefined;
    set internalValue(value: DataOciDnsZonesFilter | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    get nameInput(): string | undefined;
    private _regex?;
    get regex(): boolean | cdktf.IResolvable;
    set regex(value: boolean | cdktf.IResolvable);
    resetRegex(): void;
    get regexInput(): boolean | cdktf.IResolvable | undefined;
    private _values?;
    get values(): string[];
    set values(value: string[]);
    get valuesInput(): string[] | undefined;
}
export declare class DataOciDnsZonesFilterList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DataOciDnsZonesFilter[] | 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): DataOciDnsZonesFilterOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones oci_dns_zones}
*/
export declare class DataOciDnsZones extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_dns_zones";
    /**
    * Generates CDKTF code for importing a DataOciDnsZones 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 DataOciDnsZones to import
    * @param importFromId The id of the existing DataOciDnsZones that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_zones#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DataOciDnsZones 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/dns_zones oci_dns_zones} 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 DataOciDnsZonesConfig
    */
    constructor(scope: Construct, id: string, config: DataOciDnsZonesConfig);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    private _dnssecState?;
    get dnssecState(): string;
    set dnssecState(value: string);
    resetDnssecState(): void;
    get dnssecStateInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _nameContains?;
    get nameContains(): string;
    set nameContains(value: string);
    resetNameContains(): void;
    get nameContainsInput(): string | undefined;
    private _scope?;
    get scope(): string;
    set scope(value: string);
    resetScope(): void;
    get scopeInput(): string | undefined;
    private _sortBy?;
    get sortBy(): string;
    set sortBy(value: string);
    resetSortBy(): void;
    get sortByInput(): string | undefined;
    private _sortOrder?;
    get sortOrder(): string;
    set sortOrder(value: string);
    resetSortOrder(): void;
    get sortOrderInput(): string | undefined;
    private _state?;
    get state(): string;
    set state(value: string);
    resetState(): void;
    get stateInput(): string | undefined;
    private _timeCreatedGreaterThanOrEqualTo?;
    get timeCreatedGreaterThanOrEqualTo(): string;
    set timeCreatedGreaterThanOrEqualTo(value: string);
    resetTimeCreatedGreaterThanOrEqualTo(): void;
    get timeCreatedGreaterThanOrEqualToInput(): string | undefined;
    private _timeCreatedLessThan?;
    get timeCreatedLessThan(): string;
    set timeCreatedLessThan(value: string);
    resetTimeCreatedLessThan(): void;
    get timeCreatedLessThanInput(): string | undefined;
    private _tsigKeyId?;
    get tsigKeyId(): string;
    set tsigKeyId(value: string);
    resetTsigKeyId(): void;
    get tsigKeyIdInput(): string | undefined;
    private _viewId?;
    get viewId(): string;
    set viewId(value: string);
    resetViewId(): void;
    get viewIdInput(): string | undefined;
    private _zoneType?;
    get zoneType(): string;
    set zoneType(value: string);
    resetZoneType(): void;
    get zoneTypeInput(): string | undefined;
    private _zones;
    get zones(): DataOciDnsZonesZonesList;
    private _filter;
    get filter(): DataOciDnsZonesFilterList;
    putFilter(value: DataOciDnsZonesFilter[] | cdktf.IResolvable): void;
    resetFilter(): void;
    get filterInput(): cdktf.IResolvable | DataOciDnsZonesFilter[] | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
