import { aws_ec2 as ec2, aws_route53resolver as r53r } from 'aws-cdk-lib';
import * as constructs from 'constructs';
/**
 * Direction of Resolver
 */
export declare enum ResolverDirection {
    /**
     * Resolver is Inbound
     */
    INBOUND = "inbound",
    /**
     * Resolver is outbound
     */
    OUTBOUND = "outbound"
}
export interface OutboundForwardingRule {
    /**
     * domain to forward
     */
    readonly domain: string;
    /** array of ip address's to forward request to */
    readonly forwardTo: string[];
}
/**
 * Properties to for creating inbound resolvers.
 */
export interface R53ResolverendpointsProps {
    /**
       * the vpc that the resolvers will be placed in
       */
    readonly vpc: ec2.Vpc | ec2.IVpc;
    /**
       * the subnetgroup to place the resolvers in
       */
    readonly subnetGroup: string;
    /**
       * An array of Internal domains that can be centrally resolved in this VPC
       */
    readonly outboundForwardingRules?: OutboundForwardingRule[] | undefined;
    /**
       * Value for Sharing.
       */
    readonly tagValue?: string | undefined;
}
/**
 * Create Route53 Resolver Endpoints for MultiVPC and Hybrid DNS Resolution.
 */
export declare class R53Resolverendpoints extends constructs.Construct {
    /** inbound resolver */
    inboundResolver: r53r.CfnResolverEndpoint;
    /** list of Resolver IP address's */
    inboundResolversIp: r53r.CfnResolverRule.TargetAddressProperty[];
    /** outbound resolver */
    outboundResolver: r53r.CfnResolverEndpoint;
    /**
       *
       * @param scope the scope in which these resources are craeted
       * @param id the id of the construct
       * @param props propertys for the R53Resolver Endpoints
       */
    constructor(scope: constructs.Construct, id: string, props: R53ResolverendpointsProps);
}
export interface ConditionalForwarderProps {
    readonly forwardingRules: OutboundForwardingRule[];
    readonly outboundResolver: r53r.CfnResolverEndpoint;
    readonly inboundResolverTargets: r53r.CfnResolverRule.TargetAddressProperty[];
    readonly vpc: ec2.Vpc | ec2.IVpc;
}
export declare class ConditionalForwarder extends constructs.Construct {
    constructor(scope: constructs.Construct, id: string, props: ConditionalForwarderProps);
}
