import type { SubscriptionProps } from './subscription';
import * as iam from '../../aws-iam';
import type * as firehose from '../../aws-kinesisfirehose';
import * as sns from '../../aws-sns';
/**
 * Properties for an Amazon Data Firehose subscription
 */
export interface FirehoseSubscriptionProps extends SubscriptionProps {
    /**
     * Whether to remove any Amazon SNS metadata from published messages.
     *
     * @see https://docs.aws.amazon.com/sns/latest/dg/sns-large-payload-raw-message-delivery.html
     * @default false
     */
    readonly rawMessageDelivery?: boolean;
    /**
     * The role to assume to write messages to the Amazon Data Firehose delivery stream.
     *
     * @default - A new Role is created
     */
    readonly role?: iam.IRole;
}
/**
 * Use an Amazon Data Firehose delivery stream as a subscription target.
 *
 * @see https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html
 */
export declare class FirehoseSubscription implements sns.ITopicSubscription {
    private readonly deliveryStream;
    private readonly props;
    constructor(deliveryStream: firehose.IDeliveryStream, props?: FirehoseSubscriptionProps);
    /**
     * Returns a configuration for a Lambda function to subscribe to an SNS topic
     */
    bind(topic: sns.ITopic): sns.TopicSubscriptionConfig;
}
