import * as cdk from "../../core/lib";
import * as constructs from "constructs";
import * as cfn_parse from "../../core/lib/helpers-internal";
import { ConfigurationSetReference, IConfigurationSetRef, IOptOutListRef, IPhoneNumberRef, IPoolRef, IProtectConfigurationRef, IResourcePolicyRef, ISenderIdRef, OptOutListReference, PhoneNumberReference, PoolReference, ProtectConfigurationReference, ResourcePolicyReference, SenderIdReference } from "../../interfaces/generated/aws-smsvoice-interfaces.generated";
/**
 * Creates a new configuration set.
 *
 * After you create the configuration set, you can add one or more event destinations to it.
 *
 * A configuration set is a set of rules that you apply to the SMS and voice messages that you send.
 *
 * When you send a message, you can optionally specify a single configuration set.
 *
 * @cloudformationResource AWS::SMSVOICE::ConfigurationSet
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html
 */
export declare class CfnConfigurationSet extends cdk.CfnResource implements cdk.IInspectable, IConfigurationSetRef, cdk.ITaggableV2 {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnConfigurationSet from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnConfigurationSet;
    /**
     * Checks whether the given object is a CfnConfigurationSet
     */
    static isCfnConfigurationSet(x: any): x is CfnConfigurationSet;
    /**
     * Creates a new IConfigurationSetRef from an ARN
     */
    static fromConfigurationSetArn(scope: constructs.Construct, id: string, arn: string): IConfigurationSetRef;
    /**
     * Creates a new IConfigurationSetRef from a configurationSetName
     */
    static fromConfigurationSetName(scope: constructs.Construct, id: string, configurationSetName: string): IConfigurationSetRef;
    static arnForConfigurationSet(resource: IConfigurationSetRef): string;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly cdkTagManager: cdk.TagManager;
    /**
     * The name of the ConfigurationSet.
     */
    private _configurationSetName?;
    /**
     * The default sender ID used by the ConfigurationSet.
     */
    private _defaultSenderId?;
    /**
     * An array of EventDestination objects that describe any events to log and where to log them.
     */
    private _eventDestinations?;
    /**
     * Set to true to enable feedback for the message.
     */
    private _messageFeedbackEnabled?;
    /**
     * The unique identifier for the protect configuration.
     */
    private _protectConfigurationId?;
    /**
     * An array of key and value pair tags that's associated with the new configuration set.
     */
    private _tags?;
    /**
     * Create a new `AWS::SMSVOICE::ConfigurationSet`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props?: CfnConfigurationSetProps);
    get configurationSetRef(): ConfigurationSetReference;
    /**
     * The name of the ConfigurationSet.
     */
    get configurationSetName(): string | undefined;
    /**
     * The name of the ConfigurationSet.
     */
    set configurationSetName(value: string | undefined);
    /**
     * The default sender ID used by the ConfigurationSet.
     */
    get defaultSenderId(): string | undefined;
    /**
     * The default sender ID used by the ConfigurationSet.
     */
    set defaultSenderId(value: string | undefined);
    /**
     * An array of EventDestination objects that describe any events to log and where to log them.
     */
    get eventDestinations(): Array<CfnConfigurationSet.EventDestinationProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
    /**
     * An array of EventDestination objects that describe any events to log and where to log them.
     */
    set eventDestinations(value: Array<CfnConfigurationSet.EventDestinationProperty | cdk.IResolvable> | cdk.IResolvable | undefined);
    /**
     * Set to true to enable feedback for the message.
     */
    get messageFeedbackEnabled(): boolean | cdk.IResolvable | undefined;
    /**
     * Set to true to enable feedback for the message.
     */
    set messageFeedbackEnabled(value: boolean | cdk.IResolvable | undefined);
    /**
     * The unique identifier for the protect configuration.
     */
    get protectConfigurationId(): string | undefined;
    /**
     * The unique identifier for the protect configuration.
     */
    set protectConfigurationId(value: string | undefined);
    /**
     * An array of key and value pair tags that's associated with the new configuration set.
     */
    get tags(): Array<cdk.CfnTag> | undefined;
    /**
     * An array of key and value pair tags that's associated with the new configuration set.
     */
    set tags(value: Array<cdk.CfnTag> | undefined);
    /**
     * The Amazon Resource Name (ARN) of the ConfigurationSet.
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnConfigurationSet {
    /**
     * Contains information about an event destination.
     *
     * Event destinations are associated with configuration sets, which enable you to publish message sending events to CloudWatch, Firehose, or Amazon SNS.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html
     */
    interface EventDestinationProperty {
        /**
         * An object that contains information about an event destination that sends logging events to Amazon CloudWatch logs.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html#cfn-smsvoice-configurationset-eventdestination-cloudwatchlogsdestination
         */
        readonly cloudWatchLogsDestination?: CfnConfigurationSet.CloudWatchLogsDestinationProperty | cdk.IResolvable;
        /**
         * When set to true events will be logged.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html#cfn-smsvoice-configurationset-eventdestination-enabled
         */
        readonly enabled: boolean | cdk.IResolvable;
        /**
         * The name of the EventDestination.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html#cfn-smsvoice-configurationset-eventdestination-eventdestinationname
         */
        readonly eventDestinationName: string;
        /**
         * An object that contains information about an event destination for logging to Amazon Data Firehose.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html#cfn-smsvoice-configurationset-eventdestination-kinesisfirehosedestination
         */
        readonly kinesisFirehoseDestination?: cdk.IResolvable | CfnConfigurationSet.KinesisFirehoseDestinationProperty;
        /**
         * An array of event types that determine which events to log.
         *
         * > The `TEXT_SENT` event type is not supported.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html#cfn-smsvoice-configurationset-eventdestination-matchingeventtypes
         */
        readonly matchingEventTypes: Array<string>;
        /**
         * An object that contains information about an event destination that sends logging events to Amazon SNS.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-eventdestination.html#cfn-smsvoice-configurationset-eventdestination-snsdestination
         */
        readonly snsDestination?: cdk.IResolvable | CfnConfigurationSet.SnsDestinationProperty;
    }
    /**
     * Contains the destination configuration to use when publishing message sending events.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-cloudwatchlogsdestination.html
     */
    interface CloudWatchLogsDestinationProperty {
        /**
         * The Amazon Resource Name (ARN) of an AWS Identity and Access Management role that is able to write event data to an Amazon CloudWatch destination.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-cloudwatchlogsdestination.html#cfn-smsvoice-configurationset-cloudwatchlogsdestination-iamrolearn
         */
        readonly iamRoleArn: string;
        /**
         * The name of the Amazon CloudWatch log group that you want to record events in.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-cloudwatchlogsdestination.html#cfn-smsvoice-configurationset-cloudwatchlogsdestination-loggrouparn
         */
        readonly logGroupArn: string;
    }
    /**
     * Contains the delivery stream Amazon Resource Name (ARN), and the ARN of the AWS Identity and Access Management (IAM) role associated with a Firehose event destination.
     *
     * Event destinations, such as Firehose, are associated with configuration sets, which enable you to publish message sending events.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-kinesisfirehosedestination.html
     */
    interface KinesisFirehoseDestinationProperty {
        /**
         * The Amazon Resource Name (ARN) of the delivery stream.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-kinesisfirehosedestination.html#cfn-smsvoice-configurationset-kinesisfirehosedestination-deliverystreamarn
         */
        readonly deliveryStreamArn: string;
        /**
         * The ARN of an AWS Identity and Access Management role that is able to write event data to an Amazon Data Firehose destination.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-kinesisfirehosedestination.html#cfn-smsvoice-configurationset-kinesisfirehosedestination-iamrolearn
         */
        readonly iamRoleArn: string;
    }
    /**
     * An object that defines an Amazon SNS destination for events.
     *
     * You can use Amazon SNS to send notification when certain events occur.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-snsdestination.html
     */
    interface SnsDestinationProperty {
        /**
         * The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish events to.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-configurationset-snsdestination.html#cfn-smsvoice-configurationset-snsdestination-topicarn
         */
        readonly topicArn: string;
    }
}
/**
 * Properties for defining a `CfnConfigurationSet`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html
 */
export interface CfnConfigurationSetProps {
    /**
     * The name of the ConfigurationSet.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html#cfn-smsvoice-configurationset-configurationsetname
     */
    readonly configurationSetName?: string;
    /**
     * The default sender ID used by the ConfigurationSet.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html#cfn-smsvoice-configurationset-defaultsenderid
     */
    readonly defaultSenderId?: string;
    /**
     * An array of EventDestination objects that describe any events to log and where to log them.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html#cfn-smsvoice-configurationset-eventdestinations
     */
    readonly eventDestinations?: Array<CfnConfigurationSet.EventDestinationProperty | cdk.IResolvable> | cdk.IResolvable;
    /**
     * Set to true to enable feedback for the message.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html#cfn-smsvoice-configurationset-messagefeedbackenabled
     */
    readonly messageFeedbackEnabled?: boolean | cdk.IResolvable;
    /**
     * The unique identifier for the protect configuration.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html#cfn-smsvoice-configurationset-protectconfigurationid
     */
    readonly protectConfigurationId?: string;
    /**
     * An array of key and value pair tags that's associated with the new configuration set.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-configurationset.html#cfn-smsvoice-configurationset-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
}
/**
 * Creates a new opt-out list.
 *
 * If the opt-out list name already exists, an error is returned.
 *
 * An opt-out list is a list of phone numbers that are opted out, meaning you can't send SMS or voice messages to them. If end user replies with the keyword "STOP," an entry for the phone number is added to the opt-out list. In addition to STOP, your recipients can use any supported opt-out keyword, such as CANCEL or OPTOUT. For a list of supported opt-out keywords, see [SMS opt out](https://docs.aws.amazon.com/sms-voice/latest/userguide/opt-out-list-keywords.html) in the End User Messaging  User Guide.
 *
 * @cloudformationResource AWS::SMSVOICE::OptOutList
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-optoutlist.html
 */
export declare class CfnOptOutList extends cdk.CfnResource implements cdk.IInspectable, IOptOutListRef, cdk.ITaggableV2 {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnOptOutList from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnOptOutList;
    /**
     * Checks whether the given object is a CfnOptOutList
     */
    static isCfnOptOutList(x: any): x is CfnOptOutList;
    /**
     * Creates a new IOptOutListRef from an ARN
     */
    static fromOptOutListArn(scope: constructs.Construct, id: string, arn: string): IOptOutListRef;
    /**
     * Creates a new IOptOutListRef from a optOutListName
     */
    static fromOptOutListName(scope: constructs.Construct, id: string, optOutListName: string): IOptOutListRef;
    static arnForOptOutList(resource: IOptOutListRef): string;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly cdkTagManager: cdk.TagManager;
    /**
     * The name of the OptOutList.
     */
    private _optOutListName?;
    /**
     * An array of tags (key and value pairs) to associate with the new OptOutList.
     */
    private _tags?;
    /**
     * Create a new `AWS::SMSVOICE::OptOutList`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props?: CfnOptOutListProps);
    get optOutListRef(): OptOutListReference;
    /**
     * The name of the OptOutList.
     */
    get optOutListName(): string | undefined;
    /**
     * The name of the OptOutList.
     */
    set optOutListName(value: string | undefined);
    /**
     * An array of tags (key and value pairs) to associate with the new OptOutList.
     */
    get tags(): Array<cdk.CfnTag> | undefined;
    /**
     * An array of tags (key and value pairs) to associate with the new OptOutList.
     */
    set tags(value: Array<cdk.CfnTag> | undefined);
    /**
     * The Amazon Resource Name (ARN) for the `OptOutList` .
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
/**
 * Properties for defining a `CfnOptOutList`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-optoutlist.html
 */
export interface CfnOptOutListProps {
    /**
     * The name of the OptOutList.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-optoutlist.html#cfn-smsvoice-optoutlist-optoutlistname
     */
    readonly optOutListName?: string;
    /**
     * An array of tags (key and value pairs) to associate with the new OptOutList.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-optoutlist.html#cfn-smsvoice-optoutlist-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
}
/**
 * Request an origination phone number for use in your account.
 *
 * For more information on phone number request see [Request a phone number](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request.html) in the *End User Messaging  User Guide* .
 *
 * > Registering phone numbers is not supported by AWS CloudFormation . You can import phone numbers and sender IDs that are automatically provisioned at registration.
 *
 * @cloudformationResource AWS::SMSVOICE::PhoneNumber
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html
 */
export declare class CfnPhoneNumber extends cdk.CfnResource implements cdk.IInspectable, IPhoneNumberRef, cdk.ITaggableV2 {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnPhoneNumber from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnPhoneNumber;
    /**
     * Checks whether the given object is a CfnPhoneNumber
     */
    static isCfnPhoneNumber(x: any): x is CfnPhoneNumber;
    /**
     * Creates a new IPhoneNumberRef from an ARN
     */
    static fromPhoneNumberArn(scope: constructs.Construct, id: string, arn: string): IPhoneNumberRef;
    /**
     * Creates a new IPhoneNumberRef from a phoneNumberId
     */
    static fromPhoneNumberId(scope: constructs.Construct, id: string, phoneNumberId: string): IPhoneNumberRef;
    static arnForPhoneNumber(resource: IPhoneNumberRef): string;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly cdkTagManager: cdk.TagManager;
    /**
     * By default this is set to false.
     */
    private _deletionProtectionEnabled?;
    /**
     * The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
     */
    private _isoCountryCode;
    /**
     * Creates or updates a `MandatoryKeyword` configuration on an origination phone number For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
     */
    private _mandatoryKeywords;
    /**
     * Indicates if the phone number will be used for text messages, voice messages, or both.
     */
    private _numberCapabilities;
    /**
     * The type of phone number to request.
     */
    private _numberType;
    /**
     * A keyword is a word that you can search for on a particular phone number or pool.
     */
    private _optionalKeywords?;
    /**
     * The name of the OptOutList associated with the phone number.
     */
    private _optOutListName?;
    /**
     * When set to false and an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging  automatically replies with a customizable message and adds the end recipient to the OptOutList.
     */
    private _selfManagedOptOutsEnabled?;
    /**
     * An array of tags (key and value pairs) to associate with the requested phone number.
     */
    private _tags?;
    /**
     * Describes the two-way SMS configuration for a phone number.
     */
    private _twoWay?;
    /**
     * Create a new `AWS::SMSVOICE::PhoneNumber`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnPhoneNumberProps);
    get phoneNumberRef(): PhoneNumberReference;
    /**
     * By default this is set to false.
     */
    get deletionProtectionEnabled(): boolean | cdk.IResolvable | undefined;
    /**
     * By default this is set to false.
     */
    set deletionProtectionEnabled(value: boolean | cdk.IResolvable | undefined);
    /**
     * The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
     */
    get isoCountryCode(): string;
    /**
     * The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
     */
    set isoCountryCode(value: string);
    /**
     * Creates or updates a `MandatoryKeyword` configuration on an origination phone number For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
     */
    get mandatoryKeywords(): cdk.IResolvable | CfnPhoneNumber.MandatoryKeywordsProperty;
    /**
     * Creates or updates a `MandatoryKeyword` configuration on an origination phone number For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
     */
    set mandatoryKeywords(value: cdk.IResolvable | CfnPhoneNumber.MandatoryKeywordsProperty);
    /**
     * Indicates if the phone number will be used for text messages, voice messages, or both.
     */
    get numberCapabilities(): Array<string>;
    /**
     * Indicates if the phone number will be used for text messages, voice messages, or both.
     */
    set numberCapabilities(value: Array<string>);
    /**
     * The type of phone number to request.
     */
    get numberType(): string;
    /**
     * The type of phone number to request.
     */
    set numberType(value: string);
    /**
     * A keyword is a word that you can search for on a particular phone number or pool.
     */
    get optionalKeywords(): Array<cdk.IResolvable | CfnPhoneNumber.OptionalKeywordProperty> | cdk.IResolvable | undefined;
    /**
     * A keyword is a word that you can search for on a particular phone number or pool.
     */
    set optionalKeywords(value: Array<cdk.IResolvable | CfnPhoneNumber.OptionalKeywordProperty> | cdk.IResolvable | undefined);
    /**
     * The name of the OptOutList associated with the phone number.
     */
    get optOutListName(): string | undefined;
    /**
     * The name of the OptOutList associated with the phone number.
     */
    set optOutListName(value: string | undefined);
    /**
     * When set to false and an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging  automatically replies with a customizable message and adds the end recipient to the OptOutList.
     */
    get selfManagedOptOutsEnabled(): boolean | cdk.IResolvable | undefined;
    /**
     * When set to false and an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging  automatically replies with a customizable message and adds the end recipient to the OptOutList.
     */
    set selfManagedOptOutsEnabled(value: boolean | cdk.IResolvable | undefined);
    /**
     * An array of tags (key and value pairs) to associate with the requested phone number.
     */
    get tags(): Array<cdk.CfnTag> | undefined;
    /**
     * An array of tags (key and value pairs) to associate with the requested phone number.
     */
    set tags(value: Array<cdk.CfnTag> | undefined);
    /**
     * Describes the two-way SMS configuration for a phone number.
     */
    get twoWay(): cdk.IResolvable | CfnPhoneNumber.TwoWayProperty | undefined;
    /**
     * Describes the two-way SMS configuration for a phone number.
     */
    set twoWay(value: cdk.IResolvable | CfnPhoneNumber.TwoWayProperty | undefined);
    /**
     * The `PhoneNumber` 's Amazon Resource Name (ARN)
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    /**
     * The phone number in E.164 format.
     *
     * @cloudformationAttribute PhoneNumber
     */
    get attrPhoneNumber(): string;
    /**
     * The unique identifier for the phone number.
     *
     * @cloudformationAttribute PhoneNumberId
     */
    get attrPhoneNumberId(): string;
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnPhoneNumber {
    /**
     * The keywords `HELP` and `STOP` are mandatory keywords that each phone number must have.
     *
     * For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-mandatorykeywords.html
     */
    interface MandatoryKeywordsProperty {
        /**
         * Specifies the `HELP` keyword that customers use to obtain customer support for this phone number.
         *
         * For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-mandatorykeywords.html#cfn-smsvoice-phonenumber-mandatorykeywords-help
         */
        readonly help: cdk.IResolvable | CfnPhoneNumber.MandatoryKeywordProperty;
        /**
         * Specifies the `STOP` keyword that customers use to opt out of receiving messages from this phone number.
         *
         * For more information, see [Required opt-out keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords-required.html) in the End User Messaging  User Guide.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-mandatorykeywords.html#cfn-smsvoice-phonenumber-mandatorykeywords-stop
         */
        readonly stop: cdk.IResolvable | CfnPhoneNumber.MandatoryKeywordProperty;
    }
    /**
     * The keywords `HELP` and `STOP` are mandatory keywords that each phone number must have.
     *
     * For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-mandatorykeyword.html
     */
    interface MandatoryKeywordProperty {
        /**
         * The message associated with the keyword.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-mandatorykeyword.html#cfn-smsvoice-phonenumber-mandatorykeyword-message
         */
        readonly message: string;
    }
    /**
     * The `OptionalKeyword` configuration.
     *
     * For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-optionalkeyword.html
     */
    interface OptionalKeywordProperty {
        /**
         * The action to perform when the keyword is used.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-optionalkeyword.html#cfn-smsvoice-phonenumber-optionalkeyword-action
         */
        readonly action: string;
        /**
         * The new keyword to add.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-optionalkeyword.html#cfn-smsvoice-phonenumber-optionalkeyword-keyword
         */
        readonly keyword: string;
        /**
         * The message associated with the keyword.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-optionalkeyword.html#cfn-smsvoice-phonenumber-optionalkeyword-message
         */
        readonly message: string;
    }
    /**
     * The phone number's two-way SMS configuration object.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-twoway.html
     */
    interface TwoWayProperty {
        /**
         * The Amazon Resource Name (ARN) of the two way channel.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-twoway.html#cfn-smsvoice-phonenumber-twoway-channelarn
         */
        readonly channelArn?: string;
        /**
         * An optional IAM Role Arn for a service to assume, to be able to post inbound SMS messages.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-twoway.html#cfn-smsvoice-phonenumber-twoway-channelrole
         */
        readonly channelRole?: string;
        /**
         * By default this is set to false.
         *
         * When set to true you can receive incoming text messages from your end recipients using the TwoWayChannelArn.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-phonenumber-twoway.html#cfn-smsvoice-phonenumber-twoway-enabled
         */
        readonly enabled: boolean | cdk.IResolvable;
    }
}
/**
 * Properties for defining a `CfnPhoneNumber`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html
 */
export interface CfnPhoneNumberProps {
    /**
     * By default this is set to false.
     *
     * When set to true the phone number can't be deleted.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-deletionprotectionenabled
     */
    readonly deletionProtectionEnabled?: boolean | cdk.IResolvable;
    /**
     * The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-isocountrycode
     */
    readonly isoCountryCode: string;
    /**
     * Creates or updates a `MandatoryKeyword` configuration on an origination phone number For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-mandatorykeywords
     */
    readonly mandatoryKeywords: cdk.IResolvable | CfnPhoneNumber.MandatoryKeywordsProperty;
    /**
     * Indicates if the phone number will be used for text messages, voice messages, or both.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-numbercapabilities
     */
    readonly numberCapabilities: Array<string>;
    /**
     * The type of phone number to request.
     *
     * > The `ShortCode` number type is not supported in AWS CloudFormation .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-numbertype
     */
    readonly numberType: string;
    /**
     * A keyword is a word that you can search for on a particular phone number or pool.
     *
     * It is also a specific word or phrase that an end user can send to your number to elicit a response, such as an informational message or a special offer. When your number receives a message that begins with a keyword, End User Messaging  responds with a customizable message. Optional keywords are differentiated from mandatory keywords. For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-optionalkeywords
     */
    readonly optionalKeywords?: Array<cdk.IResolvable | CfnPhoneNumber.OptionalKeywordProperty> | cdk.IResolvable;
    /**
     * The name of the OptOutList associated with the phone number.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-optoutlistname
     */
    readonly optOutListName?: string;
    /**
     * When set to false and an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging  automatically replies with a customizable message and adds the end recipient to the OptOutList.
     *
     * When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out request. For more information see [Self-managed opt-outs](https://docs.aws.amazon.com/sms-voice/latest/userguide/opt-out-list-self-managed.html)
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-selfmanagedoptoutsenabled
     */
    readonly selfManagedOptOutsEnabled?: boolean | cdk.IResolvable;
    /**
     * An array of tags (key and value pairs) to associate with the requested phone number.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
    /**
     * Describes the two-way SMS configuration for a phone number.
     *
     * For more information, see [Two-way SMS messaging](https://docs.aws.amazon.com/sms-voice/latest/userguide/two-way-sms.html) in the End User Messaging  User Guide.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-phonenumber.html#cfn-smsvoice-phonenumber-twoway
     */
    readonly twoWay?: cdk.IResolvable | CfnPhoneNumber.TwoWayProperty;
}
/**
 * Creates a new pool and associates the specified origination identity to the pool.
 *
 * A pool can include one or more phone numbers and SenderIds that are associated with your AWS account.
 *
 * The new pool inherits its configuration from the specified origination identity. This includes keywords, message type, opt-out list, two-way configuration, and self-managed opt-out configuration. Deletion protection isn't inherited from the origination identity and defaults to false.
 *
 * If the origination identity is a phone number and is already associated with another pool, an error is returned. A sender ID can be associated with multiple pools.
 *
 * @cloudformationResource AWS::SMSVOICE::Pool
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html
 */
export declare class CfnPool extends cdk.CfnResource implements cdk.IInspectable, IPoolRef, cdk.ITaggableV2 {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnPool from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnPool;
    /**
     * Checks whether the given object is a CfnPool
     */
    static isCfnPool(x: any): x is CfnPool;
    /**
     * Creates a new IPoolRef from an ARN
     */
    static fromPoolArn(scope: constructs.Construct, id: string, arn: string): IPoolRef;
    /**
     * Creates a new IPoolRef from a poolId
     */
    static fromPoolId(scope: constructs.Construct, id: string, poolId: string): IPoolRef;
    static arnForPool(resource: IPoolRef): string;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly cdkTagManager: cdk.TagManager;
    /**
     * When set to true the pool can't be deleted.
     */
    private _deletionProtectionEnabled?;
    /**
     * Creates or updates the pool's `MandatoryKeyword` configuration.
     */
    private _mandatoryKeywords;
    /**
     * Specifies any optional keywords to associate with the pool.
     */
    private _optionalKeywords?;
    /**
     * The name of the OptOutList associated with the pool.
     */
    private _optOutListName?;
    /**
     * The list of origination identities to apply to the pool, either `PhoneNumberArn` or `SenderIdArn` .
     */
    private _originationIdentities;
    /**
     * When set to false, an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging  automatically replies with a customizable message and adds the end recipient to the OptOutList.
     */
    private _selfManagedOptOutsEnabled?;
    /**
     * Allows you to enable shared routes on your pool.
     */
    private _sharedRoutesEnabled?;
    /**
     * An array of tags (key and value pairs) associated with the pool.
     */
    private _tags?;
    /**
     * Describes the two-way SMS configuration for a phone number.
     */
    private _twoWay?;
    /**
     * Create a new `AWS::SMSVOICE::Pool`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnPoolProps);
    get poolRef(): PoolReference;
    /**
     * When set to true the pool can't be deleted.
     */
    get deletionProtectionEnabled(): boolean | cdk.IResolvable | undefined;
    /**
     * When set to true the pool can't be deleted.
     */
    set deletionProtectionEnabled(value: boolean | cdk.IResolvable | undefined);
    /**
     * Creates or updates the pool's `MandatoryKeyword` configuration.
     */
    get mandatoryKeywords(): cdk.IResolvable | CfnPool.MandatoryKeywordsProperty;
    /**
     * Creates or updates the pool's `MandatoryKeyword` configuration.
     */
    set mandatoryKeywords(value: cdk.IResolvable | CfnPool.MandatoryKeywordsProperty);
    /**
     * Specifies any optional keywords to associate with the pool.
     */
    get optionalKeywords(): Array<cdk.IResolvable | CfnPool.OptionalKeywordProperty> | cdk.IResolvable | undefined;
    /**
     * Specifies any optional keywords to associate with the pool.
     */
    set optionalKeywords(value: Array<cdk.IResolvable | CfnPool.OptionalKeywordProperty> | cdk.IResolvable | undefined);
    /**
     * The name of the OptOutList associated with the pool.
     */
    get optOutListName(): string | undefined;
    /**
     * The name of the OptOutList associated with the pool.
     */
    set optOutListName(value: string | undefined);
    /**
     * The list of origination identities to apply to the pool, either `PhoneNumberArn` or `SenderIdArn` .
     */
    get originationIdentities(): Array<string>;
    /**
     * The list of origination identities to apply to the pool, either `PhoneNumberArn` or `SenderIdArn` .
     */
    set originationIdentities(value: Array<string>);
    /**
     * When set to false, an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging  automatically replies with a customizable message and adds the end recipient to the OptOutList.
     */
    get selfManagedOptOutsEnabled(): boolean | cdk.IResolvable | undefined;
    /**
     * When set to false, an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging  automatically replies with a customizable message and adds the end recipient to the OptOutList.
     */
    set selfManagedOptOutsEnabled(value: boolean | cdk.IResolvable | undefined);
    /**
     * Allows you to enable shared routes on your pool.
     */
    get sharedRoutesEnabled(): boolean | cdk.IResolvable | undefined;
    /**
     * Allows you to enable shared routes on your pool.
     */
    set sharedRoutesEnabled(value: boolean | cdk.IResolvable | undefined);
    /**
     * An array of tags (key and value pairs) associated with the pool.
     */
    get tags(): Array<cdk.CfnTag> | undefined;
    /**
     * An array of tags (key and value pairs) associated with the pool.
     */
    set tags(value: Array<cdk.CfnTag> | undefined);
    /**
     * Describes the two-way SMS configuration for a phone number.
     */
    get twoWay(): cdk.IResolvable | CfnPool.TwoWayProperty | undefined;
    /**
     * Describes the two-way SMS configuration for a phone number.
     */
    set twoWay(value: cdk.IResolvable | CfnPool.TwoWayProperty | undefined);
    /**
     * The Amazon Resource Name of the `Pool` .
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    /**
     * The unique identifier for the pool.
     *
     * @cloudformationAttribute PoolId
     */
    get attrPoolId(): string;
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnPool {
    /**
     * The manadatory keywords, `HELP` and `STOP` to add to the pool.
     *
     * For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-mandatorykeywords.html
     */
    interface MandatoryKeywordsProperty {
        /**
         * Specifies the pool's `HELP` keyword.
         *
         * For more information, see [Opt out list required keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/opt-out-list-keywords.html) in the End User Messaging  User Guide.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-mandatorykeywords.html#cfn-smsvoice-pool-mandatorykeywords-help
         */
        readonly help: cdk.IResolvable | CfnPool.MandatoryKeywordProperty;
        /**
         * Specifies the pool's opt-out keyword.
         *
         * For more information, see [Required opt-out keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords-required.html) in the End User Messaging  User Guide.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-mandatorykeywords.html#cfn-smsvoice-pool-mandatorykeywords-stop
         */
        readonly stop: cdk.IResolvable | CfnPool.MandatoryKeywordProperty;
    }
    /**
     * The keywords `HELP` and `STOP` are mandatory keywords that each phone number must have.
     *
     * For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-mandatorykeyword.html
     */
    interface MandatoryKeywordProperty {
        /**
         * The message associated with the keyword.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-mandatorykeyword.html#cfn-smsvoice-pool-mandatorykeyword-message
         */
        readonly message: string;
    }
    /**
     * The pool's `OptionalKeyword` configuration.
     *
     * For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-optionalkeyword.html
     */
    interface OptionalKeywordProperty {
        /**
         * The action to perform when the keyword is used.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-optionalkeyword.html#cfn-smsvoice-pool-optionalkeyword-action
         */
        readonly action: string;
        /**
         * The new keyword to add.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-optionalkeyword.html#cfn-smsvoice-pool-optionalkeyword-keyword
         */
        readonly keyword: string;
        /**
         * The message associated with the keyword.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-optionalkeyword.html#cfn-smsvoice-pool-optionalkeyword-message
         */
        readonly message: string;
    }
    /**
     * The pool's two-way SMS configuration object.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-twoway.html
     */
    interface TwoWayProperty {
        /**
         * The Amazon Resource Name (ARN) of the two way channel.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-twoway.html#cfn-smsvoice-pool-twoway-channelarn
         */
        readonly channelArn?: string;
        /**
         * An optional IAM Role Arn for a service to assume, to be able to post inbound SMS messages.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-twoway.html#cfn-smsvoice-pool-twoway-channelrole
         */
        readonly channelRole?: string;
        /**
         * By default this is set to false.
         *
         * When set to true you can receive incoming text messages from your end recipients using the TwoWayChannelArn.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-pool-twoway.html#cfn-smsvoice-pool-twoway-enabled
         */
        readonly enabled: boolean | cdk.IResolvable;
    }
}
/**
 * Properties for defining a `CfnPool`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html
 */
export interface CfnPoolProps {
    /**
     * When set to true the pool can't be deleted.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-deletionprotectionenabled
     */
    readonly deletionProtectionEnabled?: boolean | cdk.IResolvable;
    /**
     * Creates or updates the pool's `MandatoryKeyword` configuration.
     *
     * For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-mandatorykeywords
     */
    readonly mandatoryKeywords: cdk.IResolvable | CfnPool.MandatoryKeywordsProperty;
    /**
     * Specifies any optional keywords to associate with the pool.
     *
     * For more information, see [Keywords](https://docs.aws.amazon.com/sms-voice/latest/userguide/keywords.html) in the End User Messaging  User Guide.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-optionalkeywords
     */
    readonly optionalKeywords?: Array<cdk.IResolvable | CfnPool.OptionalKeywordProperty> | cdk.IResolvable;
    /**
     * The name of the OptOutList associated with the pool.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-optoutlistname
     */
    readonly optOutListName?: string;
    /**
     * The list of origination identities to apply to the pool, either `PhoneNumberArn` or `SenderIdArn` .
     *
     * For more information, see [Registrations](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations.html) in the End User Messaging  User Guide.
     *
     * > If you are using a shared End User Messaging  resource then you must use the full Amazon Resource Name (ARN).
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-originationidentities
     */
    readonly originationIdentities: Array<string>;
    /**
     * When set to false, an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, End User Messaging  automatically replies with a customizable message and adds the end recipient to the OptOutList.
     *
     * When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. For more information see [Self-managed opt-outs](https://docs.aws.amazon.com//pinpoint/latest/userguide/settings-sms-managing.html#settings-account-sms-self-managed-opt-out)
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-selfmanagedoptoutsenabled
     */
    readonly selfManagedOptOutsEnabled?: boolean | cdk.IResolvable;
    /**
     * Allows you to enable shared routes on your pool.
     *
     * By default, this is set to `False` . If you set this value to `True` , your messages are sent using phone numbers or sender IDs (depending on the country) that are shared with other users. In some countries, such as the United States, senders aren't allowed to use shared routes and must use a dedicated phone number or short code.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-sharedroutesenabled
     */
    readonly sharedRoutesEnabled?: boolean | cdk.IResolvable;
    /**
     * An array of tags (key and value pairs) associated with the pool.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
    /**
     * Describes the two-way SMS configuration for a phone number.
     *
     * For more information, see [Two-way SMS messaging](https://docs.aws.amazon.com/sms-voice/latest/userguide/two-way-sms.html) in the End User Messaging  User Guide.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-pool.html#cfn-smsvoice-pool-twoway
     */
    readonly twoWay?: cdk.IResolvable | CfnPool.TwoWayProperty;
}
/**
 * Create a new protect configuration.
 *
 * By default all country rule sets for each capability are set to `ALLOW` . A protect configurations name is stored as a Tag with the key set to `Name` and value as the name of the protect configuration.
 *
 * @cloudformationResource AWS::SMSVOICE::ProtectConfiguration
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html
 */
export declare class CfnProtectConfiguration extends cdk.CfnResource implements cdk.IInspectable, IProtectConfigurationRef, cdk.ITaggableV2 {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnProtectConfiguration from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnProtectConfiguration;
    /**
     * Checks whether the given object is a CfnProtectConfiguration
     */
    static isCfnProtectConfiguration(x: any): x is CfnProtectConfiguration;
    /**
     * Creates a new IProtectConfigurationRef from an ARN
     */
    static fromProtectConfigurationArn(scope: constructs.Construct, id: string, arn: string): IProtectConfigurationRef;
    /**
     * Creates a new IProtectConfigurationRef from a protectConfigurationId
     */
    static fromProtectConfigurationId(scope: constructs.Construct, id: string, protectConfigurationId: string): IProtectConfigurationRef;
    static arnForProtectConfiguration(resource: IProtectConfigurationRef): string;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly cdkTagManager: cdk.TagManager;
    /**
     * The set of `CountryRules` you specify to control which countries End User Messaging  can send your messages to.
     */
    private _countryRuleSet?;
    /**
     * The status of deletion protection for the protect configuration.
     */
    private _deletionProtectionEnabled?;
    /**
     * An array of key and value pair tags that are associated with the resource.
     */
    private _tags?;
    /**
     * Create a new `AWS::SMSVOICE::ProtectConfiguration`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props?: CfnProtectConfigurationProps);
    get protectConfigurationRef(): ProtectConfigurationReference;
    /**
     * The set of `CountryRules` you specify to control which countries End User Messaging  can send your messages to.
     */
    get countryRuleSet(): CfnProtectConfiguration.CountryRuleSetProperty | cdk.IResolvable | undefined;
    /**
     * The set of `CountryRules` you specify to control which countries End User Messaging  can send your messages to.
     */
    set countryRuleSet(value: CfnProtectConfiguration.CountryRuleSetProperty | cdk.IResolvable | undefined);
    /**
     * The status of deletion protection for the protect configuration.
     */
    get deletionProtectionEnabled(): boolean | cdk.IResolvable | undefined;
    /**
     * The status of deletion protection for the protect configuration.
     */
    set deletionProtectionEnabled(value: boolean | cdk.IResolvable | undefined);
    /**
     * An array of key and value pair tags that are associated with the resource.
     */
    get tags(): Array<cdk.CfnTag> | undefined;
    /**
     * An array of key and value pair tags that are associated with the resource.
     */
    set tags(value: Array<cdk.CfnTag> | undefined);
    /**
     * The Amazon Resource Name (ARN) of the protect configuration.
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    /**
     * The unique identifier for the protect configuration.
     *
     * @cloudformationAttribute ProtectConfigurationId
     */
    get attrProtectConfigurationId(): string;
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnProtectConfiguration {
    /**
     * The set of `CountryRules` you specify to control which countries End User Messaging  can send your messages to.
     *
     * > If you don't specify all available ISO country codes in the `CountryRuleSet` for each number capability, the CloudFormation drift detection feature will detect drift. This is because End User Messaging  always returns all country codes.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryruleset.html
     */
    interface CountryRuleSetProperty {
        /**
         * The set of `CountryRule` s to control which destination countries End User Messaging  can send your MMS messages to.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryruleset.html#cfn-smsvoice-protectconfiguration-countryruleset-mms
         */
        readonly mms?: Array<CfnProtectConfiguration.CountryRuleProperty | cdk.IResolvable> | cdk.IResolvable;
        /**
         * The set of `CountryRule` s to control which destination countries End User Messaging  can send your SMS messages to.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryruleset.html#cfn-smsvoice-protectconfiguration-countryruleset-sms
         */
        readonly sms?: Array<CfnProtectConfiguration.CountryRuleProperty | cdk.IResolvable> | cdk.IResolvable;
        /**
         * The set of `CountryRule` s to control which destination countries End User Messaging  can send your VOICE messages to.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryruleset.html#cfn-smsvoice-protectconfiguration-countryruleset-voice
         */
        readonly voice?: Array<CfnProtectConfiguration.CountryRuleProperty | cdk.IResolvable> | cdk.IResolvable;
    }
    /**
     * Specifies the type of protection to use for a country.
     *
     * For example, to set Canada as allowed, the `CountryRule` would be formatted as follows:
     *
     * `{ "CountryCode": "CA", "ProtectStatus": "ALLOW" }`
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryrule.html
     */
    interface CountryRuleProperty {
        /**
         * The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryrule.html#cfn-smsvoice-protectconfiguration-countryrule-countrycode
         */
        readonly countryCode: string;
        /**
         * The types of protection that can be used.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-smsvoice-protectconfiguration-countryrule.html#cfn-smsvoice-protectconfiguration-countryrule-protectstatus
         */
        readonly protectStatus: string;
    }
}
/**
 * Properties for defining a `CfnProtectConfiguration`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html
 */
export interface CfnProtectConfigurationProps {
    /**
     * The set of `CountryRules` you specify to control which countries End User Messaging  can send your messages to.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html#cfn-smsvoice-protectconfiguration-countryruleset
     */
    readonly countryRuleSet?: CfnProtectConfiguration.CountryRuleSetProperty | cdk.IResolvable;
    /**
     * The status of deletion protection for the protect configuration.
     *
     * When set to true deletion protection is enabled. By default this is set to false.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html#cfn-smsvoice-protectconfiguration-deletionprotectionenabled
     */
    readonly deletionProtectionEnabled?: boolean | cdk.IResolvable;
    /**
     * An array of key and value pair tags that are associated with the resource.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-protectconfiguration.html#cfn-smsvoice-protectconfiguration-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
}
/**
 * Attaches a resource-based policy to a End User Messaging  resource(phone number, sender Id, phone poll, or opt-out list) that is used for sharing the resource.
 *
 * A shared resource can be a Pool, Opt-out list, Sender Id, or Phone number. For more information about resource-based policies, see [Working with shared resources](https://docs.aws.amazon.com/sms-voice/latest/userguide/shared-resources.html) in the *End User Messaging  User Guide* .
 *
 * @cloudformationResource AWS::SMSVOICE::ResourcePolicy
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-resourcepolicy.html
 */
export declare class CfnResourcePolicy extends cdk.CfnResource implements cdk.IInspectable, IResourcePolicyRef {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnResourcePolicy from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnResourcePolicy;
    /**
     * Checks whether the given object is a CfnResourcePolicy
     */
    static isCfnResourcePolicy(x: any): x is CfnResourcePolicy;
    /**
     * The JSON formatted resource-based policy to attach.
     */
    private _policyDocument;
    /**
     * The Amazon Resource Name (ARN) of the End User Messaging  resource attached to the resource-based policy.
     */
    private _resourceArn;
    /**
     * Create a new `AWS::SMSVOICE::ResourcePolicy`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnResourcePolicyProps);
    get resourcePolicyRef(): ResourcePolicyReference;
    /**
     * The JSON formatted resource-based policy to attach.
     */
    get policyDocument(): any | cdk.IResolvable;
    /**
     * The JSON formatted resource-based policy to attach.
     */
    set policyDocument(value: any | cdk.IResolvable);
    /**
     * The Amazon Resource Name (ARN) of the End User Messaging  resource attached to the resource-based policy.
     */
    get resourceArn(): string;
    /**
     * The Amazon Resource Name (ARN) of the End User Messaging  resource attached to the resource-based policy.
     */
    set resourceArn(value: string);
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
/**
 * Properties for defining a `CfnResourcePolicy`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-resourcepolicy.html
 */
export interface CfnResourcePolicyProps {
    /**
     * The JSON formatted resource-based policy to attach.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-resourcepolicy.html#cfn-smsvoice-resourcepolicy-policydocument
     */
    readonly policyDocument: any | cdk.IResolvable;
    /**
     * The Amazon Resource Name (ARN) of the End User Messaging  resource attached to the resource-based policy.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-resourcepolicy.html#cfn-smsvoice-resourcepolicy-resourcearn
     */
    readonly resourceArn: string;
}
/**
 * Request a new sender ID that doesn't require registration.
 *
 * @cloudformationResource AWS::SMSVOICE::SenderId
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html
 */
export declare class CfnSenderId extends cdk.CfnResource implements cdk.IInspectable, ISenderIdRef, cdk.ITaggableV2 {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnSenderId from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnSenderId;
    /**
     * Checks whether the given object is a CfnSenderId
     */
    static isCfnSenderId(x: any): x is CfnSenderId;
    static arnForSenderId(resource: ISenderIdRef): string;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly cdkTagManager: cdk.TagManager;
    /**
     * By default this is set to false.
     */
    private _deletionProtectionEnabled?;
    /**
     * The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
     */
    private _isoCountryCode;
    /**
     * The sender ID string to request.
     */
    private _senderId;
    /**
     * An array of tags (key and value pairs) to associate with the sender ID.
     */
    private _tags?;
    /**
     * Create a new `AWS::SMSVOICE::SenderId`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnSenderIdProps);
    get senderIdRef(): SenderIdReference;
    /**
     * By default this is set to false.
     */
    get deletionProtectionEnabled(): boolean | cdk.IResolvable | undefined;
    /**
     * By default this is set to false.
     */
    set deletionProtectionEnabled(value: boolean | cdk.IResolvable | undefined);
    /**
     * The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
     */
    get isoCountryCode(): string;
    /**
     * The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
     */
    set isoCountryCode(value: string);
    /**
     * The sender ID string to request.
     */
    get senderId(): string;
    /**
     * The sender ID string to request.
     */
    set senderId(value: string);
    /**
     * An array of tags (key and value pairs) to associate with the sender ID.
     */
    get tags(): Array<cdk.CfnTag> | undefined;
    /**
     * An array of tags (key and value pairs) to associate with the sender ID.
     */
    set tags(value: Array<cdk.CfnTag> | undefined);
    /**
     * The Amazon Resource Name of the `SenderId` .
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
/**
 * Properties for defining a `CfnSenderId`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html
 */
export interface CfnSenderIdProps {
    /**
     * By default this is set to false.
     *
     * When set to true the sender ID can't be deleted.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html#cfn-smsvoice-senderid-deletionprotectionenabled
     */
    readonly deletionProtectionEnabled?: boolean | cdk.IResolvable;
    /**
     * The two-character code, in ISO 3166-1 alpha-2 format, for the country or region.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html#cfn-smsvoice-senderid-isocountrycode
     */
    readonly isoCountryCode: string;
    /**
     * The sender ID string to request.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html#cfn-smsvoice-senderid-senderid
     */
    readonly senderId: string;
    /**
     * An array of tags (key and value pairs) to associate with the sender ID.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-smsvoice-senderid.html#cfn-smsvoice-senderid-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
}
export type { IConfigurationSetRef, ConfigurationSetReference };
export type { IOptOutListRef, OptOutListReference };
export type { IPhoneNumberRef, PhoneNumberReference };
export type { IPoolRef, PoolReference };
export type { IProtectConfigurationRef, ProtectConfigurationReference };
export type { IResourcePolicyRef, ResourcePolicyReference };
export type { ISenderIdRef, SenderIdReference };
