import { SNSConfig } from '../../../../typings/config'; import { ARN, DeliveryPolicy, MessageAttributes, MessageStructure, SubscriptionAttributes, SupportedProtocol, TopicAttributes, TopicTag } from '../../../client'; import { BaseManager } from '../../common/model/base-manager'; import { BaseStorageEngine } from '../../common/model/base-storage-engine'; import { Publish } from '../../common/model/publish'; import { Subscription } from '../../common/model/subscription'; import { SubscriptionVerificationToken } from '../../common/model/subscription-verification-token'; import { Topic } from '../../common/model/topic'; import { User } from '../../common/model/user'; declare class SNSManager extends BaseManager { private requestClient; private readonly sNSStorageEngine; private sqnsClient; private readonly workerEventScheduler; constructor(snsConfig: SNSConfig); createTopic(name: string, displayName: string, region: string, deliveryPolicy: DeliveryPolicy, user: User, attributes?: TopicAttributes, tags?: TopicTag): Promise; findTopicByARN(topicARN: string): Promise; findTopics(skip: number): Promise>; findSubscriptions(where: Record, skip?: number, limit?: number): Promise>; totalTopics(where?: Record): Promise; totalSubscriptions(where?: Record): Promise; deleteTopic(topic: Topic): Promise; removeSubscriptions(subscriptions: Array): Promise; updateTopicAttributes(topic: Topic): Promise; publish(topicArn: ARN, targetArn: ARN, Message: string, PhoneNumber: string, Subject: string, messageAttributes: MessageAttributes, messageStructure: string): Promise; findDeliveryPolicyOfArn(destinationArn: ARN): Promise; generatePublishMessageStructure(messageStructure_: string, message: string): MessageStructure; subscribe(user: User, topic: Topic, protocol: SupportedProtocol, endPoint: string, Attributes: SubscriptionAttributes): Promise; requestSubscriptionConfirmation(subscription: Subscription, serverURL: string): void; findSubscriptionVerificationToken(token: string): Promise; findSubscriptionFromArn(subscriptionArn: string): Promise; confirmSubscription(subscription: Subscription): Promise; findPublishById(id: string): Promise; markPublished(publish: Publish): Promise; getStorageEngine(): BaseStorageEngine; cancel(): void; private subscriptionValidation; } export { SNSManager };