import { aws_ec2 as ec2 } from 'aws-cdk-lib';
import * as constructs from 'constructs';
import * as CloudWanTGWProps from './cloudwanTGWProps';
/**
 * Create a TransitGateway That is attached to Cloudwan
 */
export declare class CloudWanTGW extends constructs.Construct {
    /** The created Transit Gateway */
    readonly transitGateway: ec2.CfnTransitGateway;
    /** The Cidr Ranges assigned to the transit Gateway  */
    readonly tgcidr: string[] | undefined;
    /**
     * the AttachmentId between the Transit Gateway and DX ( if any )
     */
    tgDXattachmentId: string | undefined;
    /**
     * the AttachmentId between the Transit Gateway and the cloudwan
     */
    readonly cloudwanTgAttachmentId: string;
    /**
       *
       * @param scope scope in which the resource is c
       * @param id
       * @param props TGWOnCloudWanProps
       */
    constructor(scope: constructs.Construct, id: string, props: CloudWanTGWProps.TGWOnCloudWanProps);
    /**
     * @param dxgatewayId Id of a DX gateway that
     */
    createDirectConnectGatewayAssociation(dxgatewayId: string): string;
    /**
    *  provision a DX Gateway and attach it to the transit gateway
    * @param dxgatewayname The name of the dxgateway
    * @param dxgatewayASN An ASN for the Dxgateway
    * @returns Direct Connect gatewayId
    */
    addDXGateway(dxgatewayname: string, dxgatewayASN: number): string;
    /**
     * Creates a Site To Site IPSec VPN between the Transit Gateway and Customer Gateway,
     * using a defined set of VPn Properties.
     * @param name A name to identify the vpn
     * @param vpnprops the vpn properties
     * @returns
     */
    adds2sVPN(name: string, vpnprops: CloudWanTGWProps.VpnProps): void;
}
