import * as cdk from "@aws-cdk/core"; import * as sqs from "@aws-cdk/aws-sqs"; import * as lambdaEventSources from "@aws-cdk/aws-lambda-event-sources"; import { Function as Fn, FunctionDefinition } from "./Function"; import { Permissions } from "./util/permission"; export interface QueueProps { readonly sqsQueue?: sqs.IQueue | sqs.QueueProps; readonly consumer?: FunctionDefinition | QueueConsumerProps; } export interface QueueConsumerProps { readonly function: FunctionDefinition; readonly consumerProps?: lambdaEventSources.SqsEventSourceProps; } export declare class Queue extends cdk.Construct { readonly sqsQueue: sqs.Queue; consumerFunction?: Fn; private readonly permissionsAttachedForAllConsumers; constructor(scope: cdk.Construct, id: string, props?: QueueProps); addConsumer(scope: cdk.Construct, consumer: FunctionDefinition | QueueConsumerProps): void; attachPermissions(permissions: Permissions): void; }