import type { Arn } from "../../CustomTypes/Arn";
import type { AwsResourceCommon } from "../common";
import type { CloudFormationValue } from "../IntrinsicFunctions";
import type { TopicSubscription, TopicSubscriptionProtocol } from "./common";
import type { FilterPolicy } from "./FilterPolicy";
export declare type SubscriptionType = 'AWS::SNS::Subscription';
export interface Subscription extends AwsResourceCommon {
    Type: SubscriptionType;
    Properties: SubscriptionProperties;
}
export interface SubscriptionProperties extends TopicSubscription {
    TopicArn: CloudFormationValue<Arn>;
    FilterPolicy?: FilterPolicy;
    DeliveryPolicy?: object;
    Endpoint: CloudFormationValue;
    FilterPolicyScope?: FilterPolicyScope;
    Protocol: TopicSubscriptionProtocol;
    RawMessageDelivery?: boolean;
    RedrivePolicy?: object;
    Region?: CloudFormationValue;
    SubscriptionRoleArn?: CloudFormationValue<Arn>;
}
export declare type FilterPolicyScope = 'MessageAttributes' | 'MessageBody';
