import type { Construct } from 'constructs';
import type { SubscriptionFilterOptions } from './log-group';
import type * as iam from '../../aws-iam';
import { Resource } from '../../core';
import type { ILogGroupRef } from '../../interfaces/generated/aws-logs-interfaces.generated';
/**
 * Interface for classes that can be the destination of a log Subscription
 */
export interface ILogSubscriptionDestination {
    /**
     * Return the properties required to send subscription events to this destination.
     *
     * If necessary, the destination can use the properties of the SubscriptionFilter
     * object itself to configure its permissions to allow the subscription to write
     * to it.
     *
     * The destination may reconfigure its own permissions in response to this
     * function call.
     */
    bind(scope: Construct, sourceLogGroup: ILogGroupRef): LogSubscriptionDestinationConfig;
}
/**
 * Properties returned by a Subscription destination
 */
export interface LogSubscriptionDestinationConfig {
    /**
     * The ARN of the subscription's destination
     */
    readonly arn: string;
    /**
     * The role to assume to write log events to the destination
     *
     * @default No role assumed
     */
    readonly role?: iam.IRole;
}
/**
 * Properties for a SubscriptionFilter
 */
export interface SubscriptionFilterProps extends SubscriptionFilterOptions {
    /**
     * The log group to create the subscription on.
     */
    readonly logGroup: ILogGroupRef;
}
/**
 * A new Subscription on a CloudWatch log group.
 */
export declare class SubscriptionFilter extends Resource {
    /** Uniquely identifies this class. */
    static readonly PROPERTY_INJECTION_ID: string;
    constructor(scope: Construct, id: string, props: SubscriptionFilterProps);
}
