import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciDnsResolverConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_resolver#resolver_id DataOciDnsResolver#resolver_id}
    */
    readonly resolverId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_resolver#scope DataOciDnsResolver#scope}
    */
    readonly scope?: string;
}
export interface DataOciDnsResolverAttachedViews {
}
export declare function dataOciDnsResolverAttachedViewsToTerraform(struct?: DataOciDnsResolverAttachedViews): any;
export declare function dataOciDnsResolverAttachedViewsToHclTerraform(struct?: DataOciDnsResolverAttachedViews): any;
export declare class DataOciDnsResolverAttachedViewsOutputReference 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(): DataOciDnsResolverAttachedViews | undefined;
    set internalValue(value: DataOciDnsResolverAttachedViews | undefined);
    get viewId(): string;
}
export declare class DataOciDnsResolverAttachedViewsList 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): DataOciDnsResolverAttachedViewsOutputReference;
}
export interface DataOciDnsResolverEndpoints {
}
export declare function dataOciDnsResolverEndpointsToTerraform(struct?: DataOciDnsResolverEndpoints): any;
export declare function dataOciDnsResolverEndpointsToHclTerraform(struct?: DataOciDnsResolverEndpoints): any;
export declare class DataOciDnsResolverEndpointsOutputReference 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(): DataOciDnsResolverEndpoints | undefined;
    set internalValue(value: DataOciDnsResolverEndpoints | undefined);
    get compartmentId(): string;
    get endpointType(): string;
    get forwardingAddress(): string;
    get isForwarding(): cdktf.IResolvable;
    get isListening(): cdktf.IResolvable;
    get listeningAddress(): string;
    get name(): string;
    get selfAttribute(): string;
    get state(): string;
    get subnetId(): string;
    get timeCreated(): string;
    get timeUpdated(): string;
}
export declare class DataOciDnsResolverEndpointsList 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): DataOciDnsResolverEndpointsOutputReference;
}
export interface DataOciDnsResolverRules {
}
export declare function dataOciDnsResolverRulesToTerraform(struct?: DataOciDnsResolverRules): any;
export declare function dataOciDnsResolverRulesToHclTerraform(struct?: DataOciDnsResolverRules): any;
export declare class DataOciDnsResolverRulesOutputReference 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(): DataOciDnsResolverRules | undefined;
    set internalValue(value: DataOciDnsResolverRules | undefined);
    get action(): string;
    get clientAddressConditions(): string[];
    get destinationAddresses(): string[];
    get qnameCoverConditions(): string[];
    get sourceEndpointName(): string;
}
export declare class DataOciDnsResolverRulesList 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): DataOciDnsResolverRulesOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_resolver oci_dns_resolver}
*/
export declare class DataOciDnsResolver extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_dns_resolver";
    /**
    * Generates CDKTF code for importing a DataOciDnsResolver 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 DataOciDnsResolver to import
    * @param importFromId The id of the existing DataOciDnsResolver that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/dns_resolver#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DataOciDnsResolver 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_resolver oci_dns_resolver} 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 DataOciDnsResolverConfig
    */
    constructor(scope: Construct, id: string, config: DataOciDnsResolverConfig);
    get attachedVcnId(): string;
    private _attachedViews;
    get attachedViews(): DataOciDnsResolverAttachedViewsList;
    get compartmentId(): string;
    get defaultViewId(): string;
    private _definedTags;
    get definedTags(): cdktf.StringMap;
    get displayName(): string;
    private _endpoints;
    get endpoints(): DataOciDnsResolverEndpointsList;
    private _freeformTags;
    get freeformTags(): cdktf.StringMap;
    get id(): string;
    get isProtected(): cdktf.IResolvable;
    private _resolverId?;
    get resolverId(): string;
    set resolverId(value: string);
    get resolverIdInput(): string | undefined;
    private _rules;
    get rules(): DataOciDnsResolverRulesList;
    private _scope?;
    get scope(): string;
    set scope(value: string);
    resetScope(): void;
    get scopeInput(): string | undefined;
    get selfAttribute(): string;
    get state(): string;
    get timeCreated(): string;
    get timeUpdated(): string;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
