import { IEnvironmentAware } from "../environment-aware";
import * as constructs from "constructs";
/**
 * Indicates that this resource can be referenced as a BatchScramSecret.
 *
 * @stability experimental
 */
export interface IBatchScramSecretRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a BatchScramSecret resource.
     */
    readonly batchScramSecretRef: BatchScramSecretReference;
}
/**
 * A reference to a BatchScramSecret resource.
 *
 * @struct
 * @stability external
 */
export interface BatchScramSecretReference {
    /**
     * The ClusterArn of the BatchScramSecret resource.
     */
    readonly clusterArn: string;
}
/**
 * Indicates that this resource can be referenced as a Cluster.
 *
 * @stability experimental
 */
export interface IClusterRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Cluster resource.
     */
    readonly clusterRef: ClusterReference;
}
/**
 * A reference to a Cluster resource.
 *
 * @struct
 * @stability external
 */
export interface ClusterReference {
    /**
     * The Arn of the Cluster resource.
     */
    readonly clusterArn: string;
}
/**
 * Indicates that this resource can be referenced as a ClusterPolicy.
 *
 * @stability experimental
 */
export interface IClusterPolicyRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a ClusterPolicy resource.
     */
    readonly clusterPolicyRef: ClusterPolicyReference;
}
/**
 * A reference to a ClusterPolicy resource.
 *
 * @struct
 * @stability external
 */
export interface ClusterPolicyReference {
    /**
     * The ClusterArn of the ClusterPolicy resource.
     */
    readonly clusterArn: string;
}
/**
 * Indicates that this resource can be referenced as a Configuration.
 *
 * @stability experimental
 */
export interface IConfigurationRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Configuration resource.
     */
    readonly configurationRef: ConfigurationReference;
}
/**
 * A reference to a Configuration resource.
 *
 * @struct
 * @stability external
 */
export interface ConfigurationReference {
    /**
     * The Arn of the Configuration resource.
     */
    readonly configurationArn: string;
}
/**
 * Indicates that this resource can be referenced as a ServerlessCluster.
 *
 * @stability experimental
 */
export interface IServerlessClusterRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a ServerlessCluster resource.
     */
    readonly serverlessClusterRef: ServerlessClusterReference;
}
/**
 * A reference to a ServerlessCluster resource.
 *
 * @struct
 * @stability external
 */
export interface ServerlessClusterReference {
    /**
     * The Arn of the ServerlessCluster resource.
     */
    readonly serverlessClusterArn: string;
}
/**
 * Indicates that this resource can be referenced as a VpcConnection.
 *
 * @stability experimental
 */
export interface IVpcConnectionRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a VpcConnection resource.
     */
    readonly vpcConnectionRef: VpcConnectionReference;
}
/**
 * A reference to a VpcConnection resource.
 *
 * @struct
 * @stability external
 */
export interface VpcConnectionReference {
    /**
     * The Arn of the VpcConnection resource.
     */
    readonly vpcConnectionArn: string;
}
/**
 * Indicates that this resource can be referenced as a Replicator.
 *
 * @stability experimental
 */
export interface IReplicatorRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Replicator resource.
     */
    readonly replicatorRef: ReplicatorReference;
}
/**
 * A reference to a Replicator resource.
 *
 * @struct
 * @stability external
 */
export interface ReplicatorReference {
    /**
     * The ReplicatorArn of the Replicator resource.
     */
    readonly replicatorArn: string;
}
/**
 * Indicates that this resource can be referenced as a Topic.
 *
 * @stability experimental
 */
export interface ITopicRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Topic resource.
     */
    readonly topicRef: TopicReference;
}
/**
 * A reference to a Topic resource.
 *
 * @struct
 * @stability external
 */
export interface TopicReference {
    /**
     * The TopicArn of the Topic resource.
     */
    readonly topicArn: string;
}
