import { IEnvironmentAware } from "../environment-aware";
import * as constructs from "constructs";
/**
 * Indicates that this resource can be referenced as a AccountPolicy.
 *
 * @stability experimental
 */
export interface IAccountPolicyRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a AccountPolicy resource.
     */
    readonly accountPolicyRef: AccountPolicyReference;
}
/**
 * A reference to a AccountPolicy resource.
 *
 * @struct
 * @stability external
 */
export interface AccountPolicyReference {
    /**
     * The AccountId of the AccountPolicy resource.
     */
    readonly accountId: string;
    /**
     * The PolicyType of the AccountPolicy resource.
     */
    readonly policyType: string;
    /**
     * The PolicyName of the AccountPolicy resource.
     */
    readonly policyName: string;
}
/**
 * Indicates that this resource can be referenced as a Destination.
 *
 * @stability experimental
 */
export interface IDestinationRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Destination resource.
     */
    readonly destinationRef: DestinationReference;
}
/**
 * A reference to a Destination resource.
 *
 * @struct
 * @stability external
 */
export interface DestinationReference {
    /**
     * The DestinationName of the Destination resource.
     */
    readonly destinationName: string;
    /**
     * The ARN of the Destination resource.
     */
    readonly destinationArn: string;
}
/**
 * Indicates that this resource can be referenced as a LogGroup.
 *
 * @stability experimental
 */
export interface ILogGroupRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a LogGroup resource.
     */
    readonly logGroupRef: LogGroupReference;
}
/**
 * A reference to a LogGroup resource.
 *
 * @struct
 * @stability external
 */
export interface LogGroupReference {
    /**
     * The LogGroupName of the LogGroup resource.
     */
    readonly logGroupName: string;
    /**
     * The ARN of the LogGroup resource.
     */
    readonly logGroupArn: string;
}
/**
 * Indicates that this resource can be referenced as a LogStream.
 *
 * @stability experimental
 */
export interface ILogStreamRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a LogStream resource.
     */
    readonly logStreamRef: LogStreamReference;
}
/**
 * A reference to a LogStream resource.
 *
 * @struct
 * @stability external
 */
export interface LogStreamReference {
    /**
     * The LogGroupName of the LogStream resource.
     */
    readonly logGroupName: string;
    /**
     * The LogStreamName of the LogStream resource.
     */
    readonly logStreamName: string;
}
/**
 * Indicates that this resource can be referenced as a MetricFilter.
 *
 * @stability experimental
 */
export interface IMetricFilterRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a MetricFilter resource.
     */
    readonly metricFilterRef: MetricFilterReference;
}
/**
 * A reference to a MetricFilter resource.
 *
 * @struct
 * @stability external
 */
export interface MetricFilterReference {
    /**
     * The LogGroupName of the MetricFilter resource.
     */
    readonly logGroupName: string;
    /**
     * The FilterName of the MetricFilter resource.
     */
    readonly filterName: string;
}
/**
 * Indicates that this resource can be referenced as a QueryDefinition.
 *
 * @stability experimental
 */
export interface IQueryDefinitionRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a QueryDefinition resource.
     */
    readonly queryDefinitionRef: QueryDefinitionReference;
}
/**
 * A reference to a QueryDefinition resource.
 *
 * @struct
 * @stability external
 */
export interface QueryDefinitionReference {
    /**
     * The QueryDefinitionId of the QueryDefinition resource.
     */
    readonly queryDefinitionId: string;
}
/**
 * Indicates that this resource can be referenced as a ResourcePolicy.
 *
 * @stability experimental
 */
export interface IResourcePolicyRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a ResourcePolicy resource.
     */
    readonly resourcePolicyRef: ResourcePolicyReference;
}
/**
 * A reference to a ResourcePolicy resource.
 *
 * @struct
 * @stability external
 */
export interface ResourcePolicyReference {
    /**
     * The PolicyName of the ResourcePolicy resource.
     */
    readonly policyName: string;
}
/**
 * Indicates that this resource can be referenced as a SubscriptionFilter.
 *
 * @stability experimental
 */
export interface ISubscriptionFilterRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a SubscriptionFilter resource.
     */
    readonly subscriptionFilterRef: SubscriptionFilterReference;
}
/**
 * A reference to a SubscriptionFilter resource.
 *
 * @struct
 * @stability external
 */
export interface SubscriptionFilterReference {
    /**
     * The FilterName of the SubscriptionFilter resource.
     */
    readonly filterName: string;
    /**
     * The LogGroupName of the SubscriptionFilter resource.
     */
    readonly logGroupName: string;
}
/**
 * Indicates that this resource can be referenced as a Delivery.
 *
 * @stability experimental
 */
export interface IDeliveryRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Delivery resource.
     */
    readonly deliveryRef: DeliveryReference;
}
/**
 * A reference to a Delivery resource.
 *
 * @struct
 * @stability external
 */
export interface DeliveryReference {
    /**
     * The DeliveryId of the Delivery resource.
     */
    readonly deliveryId: string;
    /**
     * The ARN of the Delivery resource.
     */
    readonly deliveryArn: string;
}
/**
 * Indicates that this resource can be referenced as a DeliveryDestination.
 *
 * @stability experimental
 */
export interface IDeliveryDestinationRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a DeliveryDestination resource.
     */
    readonly deliveryDestinationRef: DeliveryDestinationReference;
}
/**
 * A reference to a DeliveryDestination resource.
 *
 * @struct
 * @stability external
 */
export interface DeliveryDestinationReference {
    /**
     * The Name of the DeliveryDestination resource.
     */
    readonly deliveryDestinationName: string;
    /**
     * The ARN of the DeliveryDestination resource.
     */
    readonly deliveryDestinationArn: string;
}
/**
 * Indicates that this resource can be referenced as a DeliverySource.
 *
 * @stability experimental
 */
export interface IDeliverySourceRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a DeliverySource resource.
     */
    readonly deliverySourceRef: DeliverySourceReference;
}
/**
 * A reference to a DeliverySource resource.
 *
 * @struct
 * @stability external
 */
export interface DeliverySourceReference {
    /**
     * The Name of the DeliverySource resource.
     */
    readonly deliverySourceName: string;
    /**
     * The ARN of the DeliverySource resource.
     */
    readonly deliverySourceArn: string;
}
/**
 * Indicates that this resource can be referenced as a Integration.
 *
 * @stability experimental
 */
export interface IIntegrationRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Integration resource.
     */
    readonly integrationRef: IntegrationReference;
}
/**
 * A reference to a Integration resource.
 *
 * @struct
 * @stability external
 */
export interface IntegrationReference {
    /**
     * The IntegrationName of the Integration resource.
     */
    readonly integrationName: string;
}
/**
 * Indicates that this resource can be referenced as a LogAnomalyDetector.
 *
 * @stability experimental
 */
export interface ILogAnomalyDetectorRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a LogAnomalyDetector resource.
     */
    readonly logAnomalyDetectorRef: LogAnomalyDetectorReference;
}
/**
 * A reference to a LogAnomalyDetector resource.
 *
 * @struct
 * @stability external
 */
export interface LogAnomalyDetectorReference {
    /**
     * The AnomalyDetectorArn of the LogAnomalyDetector resource.
     */
    readonly anomalyDetectorArn: string;
}
/**
 * Indicates that this resource can be referenced as a ScheduledQuery.
 *
 * @stability experimental
 */
export interface IScheduledQueryRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a ScheduledQuery resource.
     */
    readonly scheduledQueryRef: ScheduledQueryReference;
}
/**
 * A reference to a ScheduledQuery resource.
 *
 * @struct
 * @stability external
 */
export interface ScheduledQueryReference {
    /**
     * The ScheduledQueryArn of the ScheduledQuery resource.
     */
    readonly scheduledQueryArn: string;
}
/**
 * Indicates that this resource can be referenced as a Transformer.
 *
 * @stability experimental
 */
export interface ITransformerRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Transformer resource.
     */
    readonly transformerRef: TransformerReference;
}
/**
 * A reference to a Transformer resource.
 *
 * @struct
 * @stability external
 */
export interface TransformerReference {
    /**
     * The LogGroupIdentifier of the Transformer resource.
     */
    readonly logGroupIdentifier: string;
}
