import { Construct } from '@aws-cdk/cdk';
import { TopicRef } from './topic-ref';
/**
 * Properties for creating a new subscription
 */
export interface SubscriptionProps {
    /**
     * What type of subscription to add.
     */
    protocol: SubscriptionProtocol;
    /**
     * The subscription endpoint.
     *
     * The meaning of this value depends on the value for 'protocol'.
     */
    endpoint: any;
    /**
     * The topic to subscribe to.
     */
    topic: TopicRef;
}
/**
 * A new subscription.
 *
 * Prefer to use the `TopicRef.subscribeXxx()` methods to creating instances of
 * this class.
 */
export declare class Subscription extends Construct {
    constructor(parent: Construct, name: string, props: SubscriptionProps);
}
/**
 * The type of subscription, controlling the type of the endpoint parameter.
 */
export declare enum SubscriptionProtocol {
    /**
     * JSON-encoded message is POSTED to an HTTP url.
     */
    Http = "http",
    /**
     * JSON-encoded message is POSTed to an HTTPS url.
     */
    Https = "https",
    /**
     * Notifications are sent via email.
     */
    Email = "email",
    /**
     * Notifications are JSON-encoded and sent via mail.
     */
    EmailJson = "email-json",
    /**
     * Notification is delivered by SMS
     */
    Sms = "sms",
    /**
     * Notifications are enqueued into an SQS queue.
     */
    Sqs = "sqs",
    /**
     * JSON-encoded notifications are sent to a mobile app endpoint.
     */
    Application = "application",
    /**
     * Notifications trigger a Lambda function.
     */
    Lambda = "lambda"
}
