import { IEnvironmentAware } from "../environment-aware";
import * as constructs from "constructs";
/**
 * Indicates that this resource can be referenced as a Connection.
 *
 * @stability experimental
 */
export interface IConnectionRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Connection resource.
     */
    readonly connectionRef: ConnectionReference;
}
/**
 * A reference to a Connection resource.
 *
 * @struct
 * @stability external
 */
export interface ConnectionReference {
    /**
     * The ConnectionArn of the Connection resource.
     */
    readonly connectionArn: string;
}
/**
 * Indicates that this resource can be referenced as a DirectConnectGateway.
 *
 * @stability experimental
 */
export interface IDirectConnectGatewayRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a DirectConnectGateway resource.
     */
    readonly directConnectGatewayRef: DirectConnectGatewayReference;
}
/**
 * A reference to a DirectConnectGateway resource.
 *
 * @struct
 * @stability external
 */
export interface DirectConnectGatewayReference {
    /**
     * The DirectConnectGatewayArn of the DirectConnectGateway resource.
     */
    readonly directConnectGatewayArn: string;
}
/**
 * Indicates that this resource can be referenced as a DirectConnectGatewayAssociation.
 *
 * @stability experimental
 */
export interface IDirectConnectGatewayAssociationRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a DirectConnectGatewayAssociation resource.
     */
    readonly directConnectGatewayAssociationRef: DirectConnectGatewayAssociationReference;
}
/**
 * A reference to a DirectConnectGatewayAssociation resource.
 *
 * @struct
 * @stability external
 */
export interface DirectConnectGatewayAssociationReference {
    /**
     * The AssociationId of the DirectConnectGatewayAssociation resource.
     */
    readonly associationId: string;
}
/**
 * Indicates that this resource can be referenced as a Lag.
 *
 * @stability experimental
 */
export interface ILagRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Lag resource.
     */
    readonly lagRef: LagReference;
}
/**
 * A reference to a Lag resource.
 *
 * @struct
 * @stability external
 */
export interface LagReference {
    /**
     * The LagArn of the Lag resource.
     */
    readonly lagArn: string;
}
/**
 * Indicates that this resource can be referenced as a PrivateVirtualInterface.
 *
 * @stability experimental
 */
export interface IPrivateVirtualInterfaceRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a PrivateVirtualInterface resource.
     */
    readonly privateVirtualInterfaceRef: PrivateVirtualInterfaceReference;
}
/**
 * A reference to a PrivateVirtualInterface resource.
 *
 * @struct
 * @stability external
 */
export interface PrivateVirtualInterfaceReference {
    /**
     * The VirtualInterfaceArn of the PrivateVirtualInterface resource.
     */
    readonly virtualInterfaceArn: string;
}
/**
 * Indicates that this resource can be referenced as a PublicVirtualInterface.
 *
 * @stability experimental
 */
export interface IPublicVirtualInterfaceRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a PublicVirtualInterface resource.
     */
    readonly publicVirtualInterfaceRef: PublicVirtualInterfaceReference;
}
/**
 * A reference to a PublicVirtualInterface resource.
 *
 * @struct
 * @stability external
 */
export interface PublicVirtualInterfaceReference {
    /**
     * The VirtualInterfaceArn of the PublicVirtualInterface resource.
     */
    readonly virtualInterfaceArn: string;
}
/**
 * Indicates that this resource can be referenced as a TransitVirtualInterface.
 *
 * @stability experimental
 */
export interface ITransitVirtualInterfaceRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a TransitVirtualInterface resource.
     */
    readonly transitVirtualInterfaceRef: TransitVirtualInterfaceReference;
}
/**
 * A reference to a TransitVirtualInterface resource.
 *
 * @struct
 * @stability external
 */
export interface TransitVirtualInterfaceReference {
    /**
     * The VirtualInterfaceArn of the TransitVirtualInterface resource.
     */
    readonly virtualInterfaceArn: string;
}
