import * as cdk from "../../core/lib";
import * as constructs from "constructs";
import * as cfn_parse from "../../core/lib/helpers-internal";
import { aws_kms as kmsRefs } from "../../interfaces";
import { IQueueInlinePolicyRef, IQueuePolicyRef, IQueueRef, QueueInlinePolicyReference, QueuePolicyReference, QueueReference } from "../../interfaces/generated/aws-sqs-interfaces.generated";
/**
 * The `AWS::SQS::Queue` resource creates an Amazon SQS standard or FIFO queue.
 *
 * Keep the following caveats in mind:
 *
 * - If you don't specify the `FifoQueue` property, Amazon SQS creates a standard queue.
 *
 * > You can't change the queue type after you create it and you can't convert an existing standard queue into a FIFO queue. You must either create a new FIFO queue for your application or delete your existing standard queue and recreate it as a FIFO queue. For more information, see [Moving from a standard queue to a FIFO queue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-moving.html) in the *Amazon SQS Developer Guide* .
 * - If you don't provide a value for a property, the queue is created with the default value for the property.
 * - If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name.
 * - To successfully create a new queue, you must provide a queue name that adheres to the [limits related to queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html) and is unique within the scope of your queues.
 *
 * For more information about creating FIFO (first-in-first-out) queues, see [Creating an Amazon SQS queue ( CloudFormation )](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/create-queue-cloudformation.html) in the *Amazon SQS Developer Guide* .
 *
 * @cloudformationResource AWS::SQS::Queue
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html
 */
export declare class CfnQueue extends cdk.CfnResource implements cdk.IInspectable, IQueueRef, cdk.ITaggable {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnQueue 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): CfnQueue;
    /**
     * Checks whether the given object is a CfnQueue
     */
    static isCfnQueue(x: any): x is CfnQueue;
    static arnForQueue(resource: IQueueRef): string;
    /**
     * For first-in-first-out (FIFO) queues, specifies whether to enable content-based deduplication.
     */
    private _contentBasedDeduplication?;
    /**
     * For high throughput for FIFO queues, specifies whether message deduplication occurs at the message group or queue level.
     */
    private _deduplicationScope?;
    /**
     * The time in seconds for which the delivery of all messages in the queue is delayed.
     */
    private _delaySeconds?;
    /**
     * If set to true, creates a FIFO queue.
     */
    private _fifoQueue?;
    /**
     * For high throughput for FIFO queues, specifies whether the FIFO queue throughput quota applies to the entire queue or per message group.
     */
    private _fifoThroughputLimit?;
    /**
     * The length of time in seconds for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS  again.
     */
    private _kmsDataKeyReusePeriodSeconds?;
    /**
     * The ID of an AWS Key Management Service (KMS) for Amazon SQS , or a custom KMS.
     */
    private _kmsMasterKeyId?;
    /**
     * The limit of how many bytes that a message can contain before Amazon SQS rejects it.
     */
    private _maximumMessageSize?;
    /**
     * The number of seconds that Amazon SQS retains a message.
     */
    private _messageRetentionPeriod?;
    /**
     * A name for the queue.
     */
    private _queueName?;
    /**
     * Specifies the duration, in seconds, that the ReceiveMessage action call waits until a message is in the queue in order to include it in the response, rather than returning an empty response if a message isn't yet available.
     */
    private _receiveMessageWaitTimeSeconds?;
    /**
     * The string that includes the parameters for the permissions for the dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON object.
     */
    private _redriveAllowPolicy?;
    /**
     * The string that includes the parameters for the dead-letter queue functionality of the source queue as a JSON object.
     */
    private _redrivePolicy?;
    /**
     * Enables server-side queue encryption using SQS owned encryption keys.
     */
    private _sqsManagedSseEnabled?;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly tags: cdk.TagManager;
    /**
     * The tags that you attach to this queue.
     */
    private _tagsRaw?;
    /**
     * The length of time during which a message will be unavailable after a message is delivered from the queue.
     */
    private _visibilityTimeout?;
    /**
     * Create a new `AWS::SQS::Queue`.
     *
     * @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?: CfnQueueProps);
    get queueRef(): QueueReference;
    /**
     * For first-in-first-out (FIFO) queues, specifies whether to enable content-based deduplication.
     */
    get contentBasedDeduplication(): boolean | cdk.IResolvable | undefined;
    /**
     * For first-in-first-out (FIFO) queues, specifies whether to enable content-based deduplication.
     */
    set contentBasedDeduplication(value: boolean | cdk.IResolvable | undefined);
    /**
     * For high throughput for FIFO queues, specifies whether message deduplication occurs at the message group or queue level.
     */
    get deduplicationScope(): string | undefined;
    /**
     * For high throughput for FIFO queues, specifies whether message deduplication occurs at the message group or queue level.
     */
    set deduplicationScope(value: string | undefined);
    /**
     * The time in seconds for which the delivery of all messages in the queue is delayed.
     */
    get delaySeconds(): number | undefined;
    /**
     * The time in seconds for which the delivery of all messages in the queue is delayed.
     */
    set delaySeconds(value: number | undefined);
    /**
     * If set to true, creates a FIFO queue.
     */
    get fifoQueue(): boolean | cdk.IResolvable | undefined;
    /**
     * If set to true, creates a FIFO queue.
     */
    set fifoQueue(value: boolean | cdk.IResolvable | undefined);
    /**
     * For high throughput for FIFO queues, specifies whether the FIFO queue throughput quota applies to the entire queue or per message group.
     */
    get fifoThroughputLimit(): string | undefined;
    /**
     * For high throughput for FIFO queues, specifies whether the FIFO queue throughput quota applies to the entire queue or per message group.
     */
    set fifoThroughputLimit(value: string | undefined);
    /**
     * The length of time in seconds for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS  again.
     */
    get kmsDataKeyReusePeriodSeconds(): number | undefined;
    /**
     * The length of time in seconds for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS  again.
     */
    set kmsDataKeyReusePeriodSeconds(value: number | undefined);
    /**
     * The ID of an AWS Key Management Service (KMS) for Amazon SQS , or a custom KMS.
     */
    get kmsMasterKeyId(): string | undefined;
    /**
     * The ID of an AWS Key Management Service (KMS) for Amazon SQS , or a custom KMS.
     */
    set kmsMasterKeyId(value: string | undefined);
    /**
     * The limit of how many bytes that a message can contain before Amazon SQS rejects it.
     */
    get maximumMessageSize(): number | undefined;
    /**
     * The limit of how many bytes that a message can contain before Amazon SQS rejects it.
     */
    set maximumMessageSize(value: number | undefined);
    /**
     * The number of seconds that Amazon SQS retains a message.
     */
    get messageRetentionPeriod(): number | undefined;
    /**
     * The number of seconds that Amazon SQS retains a message.
     */
    set messageRetentionPeriod(value: number | undefined);
    /**
     * A name for the queue.
     */
    get queueName(): string | undefined;
    /**
     * A name for the queue.
     */
    set queueName(value: string | undefined);
    /**
     * Specifies the duration, in seconds, that the ReceiveMessage action call waits until a message is in the queue in order to include it in the response, rather than returning an empty response if a message isn't yet available.
     */
    get receiveMessageWaitTimeSeconds(): number | undefined;
    /**
     * Specifies the duration, in seconds, that the ReceiveMessage action call waits until a message is in the queue in order to include it in the response, rather than returning an empty response if a message isn't yet available.
     */
    set receiveMessageWaitTimeSeconds(value: number | undefined);
    /**
     * The string that includes the parameters for the permissions for the dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON object.
     */
    get redriveAllowPolicy(): any | cdk.IResolvable | undefined;
    /**
     * The string that includes the parameters for the permissions for the dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON object.
     */
    set redriveAllowPolicy(value: any | cdk.IResolvable | undefined);
    /**
     * The string that includes the parameters for the dead-letter queue functionality of the source queue as a JSON object.
     */
    get redrivePolicy(): any | cdk.IResolvable | undefined;
    /**
     * The string that includes the parameters for the dead-letter queue functionality of the source queue as a JSON object.
     */
    set redrivePolicy(value: any | cdk.IResolvable | undefined);
    /**
     * Enables server-side queue encryption using SQS owned encryption keys.
     */
    get sqsManagedSseEnabled(): boolean | cdk.IResolvable | undefined;
    /**
     * Enables server-side queue encryption using SQS owned encryption keys.
     */
    set sqsManagedSseEnabled(value: boolean | cdk.IResolvable | undefined);
    /**
     * The tags that you attach to this queue.
     */
    get tagsRaw(): Array<cdk.CfnTag> | undefined;
    /**
     * The tags that you attach to this queue.
     */
    set tagsRaw(value: Array<cdk.CfnTag> | undefined);
    /**
     * The length of time during which a message will be unavailable after a message is delivered from the queue.
     */
    get visibilityTimeout(): number | undefined;
    /**
     * The length of time during which a message will be unavailable after a message is delivered from the queue.
     */
    set visibilityTimeout(value: number | undefined);
    /**
     * Returns the Amazon Resource Name (ARN) of the queue. For example: `arn:aws:sqs:us-east-2:123456789012:mystack-myqueue-15PG5C2FC1CW8` .
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    /**
     * Returns the queue name. For example: `mystack-myqueue-1VF9BKQH5BJVI` .
     *
     * @cloudformationAttribute QueueName
     */
    get attrQueueName(): string;
    /**
     * Returns the URLs of the queues from the policy.
     *
     * @cloudformationAttribute QueueUrl
     */
    get attrQueueUrl(): 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 `CfnQueue`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html
 */
export interface CfnQueueProps {
    /**
     * For first-in-first-out (FIFO) queues, specifies whether to enable content-based deduplication.
     *
     * During the deduplication interval, Amazon SQS treats messages that are sent with identical content as duplicates and delivers only one copy of the message. For more information, see the `ContentBasedDeduplication` attribute for the `[CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html)` action in the *Amazon SQS API Reference* .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-contentbaseddeduplication
     */
    readonly contentBasedDeduplication?: boolean | cdk.IResolvable;
    /**
     * For high throughput for FIFO queues, specifies whether message deduplication occurs at the message group or queue level.
     *
     * Valid values are `messageGroup` and `queue` .
     *
     * To enable high throughput for a FIFO queue, set this attribute to `messageGroup` *and* set the `FifoThroughputLimit` attribute to `perMessageGroupId` . If you set these attributes to anything other than these values, normal throughput is in effect and deduplication occurs as specified. For more information, see [High throughput for FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html) and [Quotas related to messages](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html) in the *Amazon SQS Developer Guide* .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-deduplicationscope
     */
    readonly deduplicationScope?: string;
    /**
     * The time in seconds for which the delivery of all messages in the queue is delayed.
     *
     * You can specify an integer value of `0` to `900` (15 minutes). The default value is `0` .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-delayseconds
     */
    readonly delaySeconds?: number;
    /**
     * If set to true, creates a FIFO queue.
     *
     * If you don't specify this property, Amazon SQS creates a standard queue. For more information, see [Amazon SQS FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fifo-queues.html) in the *Amazon SQS Developer Guide* .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-fifoqueue
     */
    readonly fifoQueue?: boolean | cdk.IResolvable;
    /**
     * For high throughput for FIFO queues, specifies whether the FIFO queue throughput quota applies to the entire queue or per message group.
     *
     * Valid values are `perQueue` and `perMessageGroupId` .
     *
     * To enable high throughput for a FIFO queue, set this attribute to `perMessageGroupId` *and* set the `DeduplicationScope` attribute to `messageGroup` . If you set these attributes to anything other than these values, normal throughput is in effect and deduplication occurs as specified. For more information, see [High throughput for FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html) and [Quotas related to messages](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html) in the *Amazon SQS Developer Guide* .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-fifothroughputlimit
     */
    readonly fifoThroughputLimit?: string;
    /**
     * The length of time in seconds for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS  again.
     *
     * The value must be an integer between 60 (1 minute) and 86,400 (24 hours). The default is 300 (5 minutes).
     *
     * > A shorter time period provides better security, but results in more calls to AWS  , which might incur charges after Free Tier. For more information, see [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work) in the *Amazon SQS Developer Guide* .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-kmsdatakeyreuseperiodseconds
     */
    readonly kmsDataKeyReusePeriodSeconds?: number;
    /**
     * The ID of an AWS Key Management Service (KMS) for Amazon SQS , or a custom KMS.
     *
     * To use the AWS managed KMS for Amazon SQS , specify a (default) alias ARN, alias name (for example `alias/aws/sqs` ), key ARN, or key ID. For more information, see the following:
     *
     * - [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html) in the *Amazon SQS Developer Guide*
     * - [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html) in the *Amazon SQS API Reference*
     * - [Request Parameters](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters) in the *AWS Key Management Service API Reference*
     * - The Key Management Service (KMS) section of the [Security best practices for AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html) in the *AWS Key Management Service Developer Guide*
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-kmsmasterkeyid
     */
    readonly kmsMasterKeyId?: kmsRefs.IAliasRef | kmsRefs.IKeyRef | string;
    /**
     * The limit of how many bytes that a message can contain before Amazon SQS rejects it.
     *
     * You can specify an integer from 1,024 bytes (1 KiB) to 1,048,576 bytes (1 MiB).
     * Default: 1,048,576 bytes (1 MiB).
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-maximummessagesize
     */
    readonly maximumMessageSize?: number;
    /**
     * The number of seconds that Amazon SQS retains a message.
     *
     * You can specify an integer value from `60` seconds (1 minute) to `1,209,600` seconds (14 days). The default value is `345,600` seconds (4 days).
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-messageretentionperiod
     */
    readonly messageRetentionPeriod?: number;
    /**
     * A name for the queue.
     *
     * To create a FIFO queue, the name of your FIFO queue must end with the `.fifo` suffix. For more information, see [Amazon SQS FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fifo-queues.html) in the *Amazon SQS Developer Guide* .
     *
     * If you don't specify a name, CloudFormation generates a unique physical ID and uses that ID for the queue name. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) in the *CloudFormation User Guide* .
     *
     * > If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-queuename
     */
    readonly queueName?: string;
    /**
     * Specifies the duration, in seconds, that the ReceiveMessage action call waits until a message is in the queue in order to include it in the response, rather than returning an empty response if a message isn't yet available.
     *
     * You can specify an integer from 1 to 20. Short polling is used as the default or when you specify 0 for this property. For more information, see [Consuming messages using long polling](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html#sqs-long-polling) in the *Amazon SQS Developer Guide* .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-receivemessagewaittimeseconds
     */
    readonly receiveMessageWaitTimeSeconds?: number;
    /**
     * The string that includes the parameters for the permissions for the dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON object.
     *
     * The parameters are as follows:
     *
     * - `redrivePermission` : The permission type that defines which source queues can specify the current queue as the dead-letter queue. Valid values are:
     *
     * - `allowAll` : (Default) Any source queues in this AWS account in the same Region can specify this queue as the dead-letter queue.
     * - `denyAll` : No source queues can specify this queue as the dead-letter queue.
     * - `byQueue` : Only queues specified by the `sourceQueueArns` parameter can specify this queue as the dead-letter queue.
     * - `sourceQueueArns` : The Amazon Resource Names (ARN)s of the source queues that can specify this queue as the dead-letter queue and redrive messages. You can specify this parameter only when the `redrivePermission` parameter is set to `byQueue` . You can specify up to 10 source queue ARNs. To allow more than 10 source queues to specify dead-letter queues, set the `redrivePermission` parameter to `allowAll` .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-redriveallowpolicy
     */
    readonly redriveAllowPolicy?: any | cdk.IResolvable;
    /**
     * The string that includes the parameters for the dead-letter queue functionality of the source queue as a JSON object.
     *
     * The parameters are as follows:
     *
     * - `deadLetterTargetArn` : The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon SQS moves messages after the value of `maxReceiveCount` is exceeded.
     * - `maxReceiveCount` : The number of times a message is received by a consumer of the source queue before being moved to the dead-letter queue. When the `ReceiveCount` for a message exceeds the `maxReceiveCount` for a queue, Amazon SQS moves the message to the dead-letter-queue.
     *
     * > The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a standard queue must also be a standard queue.
     *
     * *JSON*
     *
     * `{ "deadLetterTargetArn" : *String* , "maxReceiveCount" : *Integer* }`
     *
     * *YAML*
     *
     * `deadLetterTargetArn : *String*`
     *
     * `maxReceiveCount : *Integer*`
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-redrivepolicy
     */
    readonly redrivePolicy?: any | cdk.IResolvable;
    /**
     * Enables server-side queue encryption using SQS owned encryption keys.
     *
     * Only one server-side encryption option is supported per queue (for example, [SSE-KMS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-sse-existing-queue.html) or [SSE-SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-sqs-sse-queue.html) ). When `SqsManagedSseEnabled` is not defined, `SSE-SQS` encryption is enabled by default.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-sqsmanagedsseenabled
     */
    readonly sqsManagedSseEnabled?: boolean | cdk.IResolvable;
    /**
     * The tags that you attach to this queue.
     *
     * For more information, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *CloudFormation User Guide* .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
    /**
     * The length of time during which a message will be unavailable after a message is delivered from the queue.
     *
     * This blocks other components from receiving the same message and gives the initial component time to process and delete the message from the queue.
     *
     * Values must be from 0 to 43,200 seconds (12 hours). If you don't specify a value, AWS CloudFormation uses the default value of 30 seconds.
     *
     * For more information about Amazon SQS queue visibility timeouts, see [Visibility timeout](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) in the *Amazon SQS Developer Guide* .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html#cfn-sqs-queue-visibilitytimeout
     */
    readonly visibilityTimeout?: number;
}
/**
 * The `AWS::SQS::QueueInlinePolicy` resource associates one Amazon SQS queue with one policy.
 *
 * @cloudformationResource AWS::SQS::QueueInlinePolicy
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queueinlinepolicy.html
 */
export declare class CfnQueueInlinePolicy extends cdk.CfnResource implements cdk.IInspectable, IQueueInlinePolicyRef {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnQueueInlinePolicy 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): CfnQueueInlinePolicy;
    /**
     * Checks whether the given object is a CfnQueueInlinePolicy
     */
    static isCfnQueueInlinePolicy(x: any): x is CfnQueueInlinePolicy;
    /**
     * A policy document that contains the permissions for the specified Amazon SQS queues.
     */
    private _policyDocument;
    /**
     * The URLs of the queues to which you want to add the policy.
     */
    private _queue;
    /**
     * Create a new `AWS::SQS::QueueInlinePolicy`.
     *
     * @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: CfnQueueInlinePolicyProps);
    get queueInlinePolicyRef(): QueueInlinePolicyReference;
    /**
     * A policy document that contains the permissions for the specified Amazon SQS queues.
     */
    get policyDocument(): any | cdk.IResolvable;
    /**
     * A policy document that contains the permissions for the specified Amazon SQS queues.
     */
    set policyDocument(value: any | cdk.IResolvable);
    /**
     * The URLs of the queues to which you want to add the policy.
     */
    get queue(): string;
    /**
     * The URLs of the queues to which you want to add the policy.
     */
    set queue(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 `CfnQueueInlinePolicy`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queueinlinepolicy.html
 */
export interface CfnQueueInlinePolicyProps {
    /**
     * A policy document that contains the permissions for the specified Amazon SQS queues.
     *
     * For more information about Amazon SQS policies, see [Using custom policies with the Amazon SQS access policy language](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html) in the *Amazon SQS Developer Guide* .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queueinlinepolicy.html#cfn-sqs-queueinlinepolicy-policydocument
     */
    readonly policyDocument: any | cdk.IResolvable;
    /**
     * The URLs of the queues to which you want to add the policy.
     *
     * You can use the `[Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)` function to specify an `[AWS::SQS::Queue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html)` resource.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queueinlinepolicy.html#cfn-sqs-queueinlinepolicy-queue
     */
    readonly queue: string;
}
/**
 * The `AWS::SQS::QueuePolicy` type applies a policy to Amazon SQS queues.
 *
 * For an example snippet, see [Declaring an Amazon SQS policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sqs-policy) in the *CloudFormation User Guide* .
 *
 * @cloudformationResource AWS::SQS::QueuePolicy
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html
 */
export declare class CfnQueuePolicy extends cdk.CfnResource implements cdk.IInspectable, IQueuePolicyRef {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnQueuePolicy 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): CfnQueuePolicy;
    /**
     * Checks whether the given object is a CfnQueuePolicy
     */
    static isCfnQueuePolicy(x: any): x is CfnQueuePolicy;
    /**
     * A policy document that contains the permissions for the specified Amazon SQS queues.
     */
    private _policyDocument;
    /**
     * The URLs of the queues to which you want to add the policy.
     */
    private _queues;
    /**
     * Create a new `AWS::SQS::QueuePolicy`.
     *
     * @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: CfnQueuePolicyProps);
    get queuePolicyRef(): QueuePolicyReference;
    /**
     * A policy document that contains the permissions for the specified Amazon SQS queues.
     */
    get policyDocument(): any | cdk.IResolvable;
    /**
     * A policy document that contains the permissions for the specified Amazon SQS queues.
     */
    set policyDocument(value: any | cdk.IResolvable);
    /**
     * The URLs of the queues to which you want to add the policy.
     */
    get queues(): Array<string>;
    /**
     * The URLs of the queues to which you want to add the policy.
     */
    set queues(value: Array<string>);
    /**
     * The provider-assigned unique ID for this managed resource.
     *
     * @cloudformationAttribute Id
     */
    get attrId(): 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 `CfnQueuePolicy`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html
 */
export interface CfnQueuePolicyProps {
    /**
     * A policy document that contains the permissions for the specified Amazon SQS queues.
     *
     * For more information about Amazon SQS policies, see [Using custom policies with the Amazon SQS access policy language](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html) in the *Amazon SQS Developer Guide* .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html#cfn-sqs-queuepolicy-policydocument
     */
    readonly policyDocument: any | cdk.IResolvable;
    /**
     * The URLs of the queues to which you want to add the policy.
     *
     * You can use the `[Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)` function to specify an `[AWS::SQS::Queue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html)` resource.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html#cfn-sqs-queuepolicy-queues
     */
    readonly queues: Array<string>;
}
export type { IQueueRef, QueueReference };
export type { IQueueInlinePolicyRef, QueueInlinePolicyReference };
export type { IQueuePolicyRef, QueuePolicyReference };
