import * as cdk from "../../core/lib";
import * as constructs from "constructs";
import * as cfn_parse from "../../core/lib/helpers-internal";
import { ConnectionReference, IConnectionRef } from "../../interfaces/generated/aws-interconnect-interfaces.generated";
/**
 * Resource Type definition for AWS::Interconnect::Connection.
 *
 * Creates a managed network connection between AWS and a partner cloud service provider.
 *
 * @cloudformationResource AWS::Interconnect::Connection
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-interconnect-connection.html
 */
export declare class CfnConnection extends cdk.CfnResource implements cdk.IInspectable, IConnectionRef, cdk.ITaggableV2 {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnConnection from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnConnection;
    /**
     * Checks whether the given object is a CfnConnection
     */
    static isCfnConnection(x: any): x is CfnConnection;
    static arnForConnection(resource: IConnectionRef): string;
    /**
     * The activation key for accepting a connection proposal from a partner CSP.
     */
    activationKey?: string;
    /**
     * The logical attachment point in your AWS network where the managed connection will be connected.
     */
    attachPoint: CfnConnection.AttachPointProperty | cdk.IResolvable;
    /**
     * The bandwidth of the connection (e.g., 50Mbps, 1Gbps). Required when creating a connection through AWS.
     */
    bandwidth?: string;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly cdkTagManager: cdk.TagManager;
    /**
     * A description of the connection.
     */
    description?: string;
    /**
     * The ID of the environment for the connection.
     */
    environmentId?: string;
    /**
     * The account ID of the remote owner.
     */
    remoteOwnerAccount?: string;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    tags?: Array<cdk.CfnTag>;
    /**
     * Create a new `AWS::Interconnect::Connection`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnConnectionProps);
    get connectionRef(): ConnectionReference;
    /**
     * The Amazon Resource Name (ARN) of the connection.
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    /**
     * The billing tier for the connection.
     *
     * @cloudformationAttribute BillingTier
     */
    get attrBillingTier(): number;
    /**
     * The unique identifier for the connection.
     *
     * @cloudformationAttribute ConnectionId
     */
    get attrConnectionId(): string;
    /**
     * The AWS account ID of the connection owner.
     *
     * @cloudformationAttribute OwnerAccount
     */
    get attrOwnerAccount(): string;
    /**
     * The partner cloud service provider.
     *
     * @cloudformationAttribute Provider
     */
    get attrProvider(): cdk.IResolvable;
    /**
     * The shared identifier for the connection pairing.
     *
     * @cloudformationAttribute SharedId
     */
    get attrSharedId(): string;
    /**
     * The current state of the connection.
     *
     * @cloudformationAttribute State
     */
    get attrState(): string;
    /**
     * The type of managed connection.
     *
     * @cloudformationAttribute Type
     */
    get attrType(): string;
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnConnection {
    /**
     * The logical attachment point in your AWS network where the managed connection will be connected.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-interconnect-connection-attachpoint.html
     */
    interface AttachPointProperty {
        /**
         * The ARN of the resource to attach to.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-interconnect-connection-attachpoint.html#cfn-interconnect-connection-attachpoint-arn
         */
        readonly arn?: string;
        /**
         * The ID of the Direct Connect Gateway to attach to.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-interconnect-connection-attachpoint.html#cfn-interconnect-connection-attachpoint-directconnectgateway
         */
        readonly directConnectGateway?: string;
    }
    /**
     * The partner cloud service provider.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-interconnect-connection-provider.html
     */
    interface ProviderProperty {
        /**
         * The name of the cloud service provider.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-interconnect-connection-provider.html#cfn-interconnect-connection-provider-cloudserviceprovider
         */
        readonly cloudServiceProvider?: string;
        /**
         * The name of the last mile provider.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-interconnect-connection-provider.html#cfn-interconnect-connection-provider-lastmileprovider
         */
        readonly lastMileProvider?: string;
    }
}
/**
 * Properties for defining a `CfnConnection`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-interconnect-connection.html
 */
export interface CfnConnectionProps {
    /**
     * The activation key for accepting a connection proposal from a partner CSP.
     *
     * Mutually exclusive with EnvironmentId.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-interconnect-connection.html#cfn-interconnect-connection-activationkey
     */
    readonly activationKey?: string;
    /**
     * The logical attachment point in your AWS network where the managed connection will be connected.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-interconnect-connection.html#cfn-interconnect-connection-attachpoint
     */
    readonly attachPoint: CfnConnection.AttachPointProperty | cdk.IResolvable;
    /**
     * The bandwidth of the connection (e.g., 50Mbps, 1Gbps). Required when creating a connection through AWS.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-interconnect-connection.html#cfn-interconnect-connection-bandwidth
     */
    readonly bandwidth?: string;
    /**
     * A description of the connection.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-interconnect-connection.html#cfn-interconnect-connection-description
     */
    readonly description?: string;
    /**
     * The ID of the environment for the connection.
     *
     * Required when creating a connection through AWS. Mutually exclusive with ActivationKey.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-interconnect-connection.html#cfn-interconnect-connection-environmentid
     */
    readonly environmentId?: string;
    /**
     * The account ID of the remote owner.
     *
     * Required when creating a connection through AWS.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-interconnect-connection.html#cfn-interconnect-connection-remoteowneraccount
     */
    readonly remoteOwnerAccount?: string;
    /**
     * An array of key-value pairs to apply to this resource.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-interconnect-connection.html#cfn-interconnect-connection-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
}
export type { IConnectionRef, ConnectionReference };
