import { IGrantable } from 'aws-cdk-lib/aws-iam'; import { Function } from 'aws-cdk-lib/aws-lambda'; import { Topic } from 'aws-cdk-lib/aws-sns'; import { Queue } from 'aws-cdk-lib/aws-sqs'; import { DotStack } from '../constructs/Stack'; import { AddNodeFunctionOptions } from './node-function'; interface AddTopicOptions { displayName?: string; emailAddress?: string; handler?: Omit; name: string; scope: DotStack; } interface AddTopicSubscriptionOptions { emailAddress?: string; handler?: Omit; scope: DotStack; topic: Topic; topicHandler?: Function; } interface AddQueueSubscriptionOptions { queue: Queue; topic: Topic; } interface AddTopicSubscriptionResult { handler: Function | null; } interface GrantRemoteOptions { producers: IGrantable[]; scope: DotStack; topicArn?: string; topicName?: string; } type TopicArn = string; export declare const addTopic: (options: AddTopicOptions) => { arnParam: import("aws-cdk-lib/aws-ssm").StringParameter; handler: Function | null; topic: Topic; }; export declare const addTopicSubscription: (options: AddTopicSubscriptionOptions) => AddTopicSubscriptionResult; export declare const addQueueSubscription: (options: AddQueueSubscriptionOptions) => void; export declare const grantRemoteTopic: ({ producers, scope, topicName, topicArn }: GrantRemoteOptions) => Promise; export {};