import { ARN, DeliveryPolicy, MessageAttributes, MessageStructure, SubscriptionAttributes, SupportedProtocol, TopicAttributes, TopicTag } from '../../../client'; import { BaseStorageEngine } from '../../common/model/base-storage-engine'; import { Publish } from '../../common/model/publish'; import { Queue } from '../../common/model/queue'; 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 SNSStorageEngine extends BaseStorageEngine { 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; createSubscription(user: User, topic: Topic, protocol: SupportedProtocol, endPoint: string, Attributes?: SubscriptionAttributes): Promise; findSubscription(topic: Topic, protocol: string, endPoint: string): Promise; createSubscriptionVerificationToken(subscription: Subscription): Promise; findSubscriptionVerificationToken(token: string): Promise; findSubscriptionFromArn(subscriptionArn: string): Promise; confirmSubscription(subscription: Subscription): Promise; findPublish(id: string): Promise; markPublished(publish: Publish): Promise; publish(topicArn: ARN, targetArn: ARN, Message: string, PhoneNumber: string, Subject: string, messageAttributes: MessageAttributes, messageStructure: string, MessageStructureFinal: MessageStructure): Promise; findQueueByARN(queueARN: ARN): Promise; } export { SNSStorageEngine };