import { Duration } from 'aws-cdk-lib'; import { IGrantable } from 'aws-cdk-lib/aws-iam'; import { Key } from 'aws-cdk-lib/aws-kms'; import { Function } from 'aws-cdk-lib/aws-lambda'; import { Queue } from 'aws-cdk-lib/aws-sqs'; import { StringParameter } from 'aws-cdk-lib/aws-ssm'; import { DotStack } from '../constructs/Stack'; import { AddNodeFunctionOptions } from './node-function'; interface DeadLetterQueueOptions extends Omit { maxReceiveCount?: number; } interface AddQueueOptions { batchSize?: number; consumers?: IGrantable[]; deadLetter?: DeadLetterQueueOptions; deliveryDelay?: Duration; encrypted?: Boolean; handler?: Omit | Function; key?: Key; maxBatchingWindowSeconds?: number; maxMessageSizeBytes?: number; name?: string; retentionPeriod?: Duration; scope: DotStack; visibilityTimeout?: Duration; } interface AddQueueResultParams { arnParam: StringParameter; urlParam: StringParameter; } interface AddQueueResult { deadLetterQueue?: Queue; dlqParams?: AddQueueResultParams; handler?: Function; params: AddQueueResultParams; queue: Queue; } interface GrantRemoteOptions { consumers?: IGrantable[]; producers?: IGrantable[]; queueArn: string; scope: DotStack; } export type QueueHandler = Function; export declare const addQueue: (options: AddQueueOptions) => AddQueueResult; export declare const grantRemoteQueue: ({ consumers, producers, queueArn, scope }: GrantRemoteOptions) => void; export {};