import { MongoDBConfig } from '../../../../../typings/config'; import { AccessKey, ARN, ChannelDeliveryPolicy, DeliveryPolicy, EventItem, MessageAttributes, MessageStructure, SubscriptionAttributes, SupportedProtocol, TopicAttributes, TopicTag } from '../../../../client'; import { Publish } from '../../model/publish'; import { Queue } from '../../model/queue'; import { Subscription } from '../../model/subscription'; import { SubscriptionVerificationToken } from '../../model/subscription-verification-token'; import { Topic } from '../../model/topic'; import { User } from '../../model/user'; import { StorageAdapter } from '../storage-adapter'; declare class MongoDBAdapter implements StorageAdapter { private static readonly QUEUE_TABLE_PREFIX; private static readonly Table; private readonly connection; private static dbToSystemItem; private static getTableName; getDBTableName(tableName: string): string; constructor(config: MongoDBConfig); addEventItem(queue: Queue, eventItem: EventItem): Promise; findEventsToProcess(time: Date, limit: number): Promise>; getQueues(queueARNPrefix: string): Promise>; updateEvent(id: string, data: Record, increment?: Record): Promise; findById(id: string): Promise; findByIdForQueue(queue: Queue, id: string): Promise; findByDeduplicationIdForQueue(queue: Queue, id: string): Promise; createQueue(user: User, queueName: string, region: string, attributes: Record, tags: Record): Promise; getQueue(queueArn: ARN): Promise; deleteQueue(queue: Queue): Promise; confirmSubscription(subscription_: Subscription): Promise; createPublish(topicArn: ARN, targetArn: ARN, Message: string, PhoneNumber: string, Subject: string, messageAttributes: MessageAttributes, messageStructure: string, MessageStructureFinal: MessageStructure, status: string): Promise; createSubscription(user: User, topic: Topic, protocol: SupportedProtocol, endPoint: string, Attributes: SubscriptionAttributes, deliveryPolicy: ChannelDeliveryPolicy, confirmed: boolean): Promise; createSubscriptionVerificationToken(subscription: Subscription, token: string): Promise; findSubscriptionVerificationTokenByToken(token: string): Promise; createTopic(name: string, displayName: string, region: string, deliveryPolicy: DeliveryPolicy, user: User, attributes: TopicAttributes, tags: TopicTag): Promise; deleteTopic(topic: Topic): Promise; findPublishes(query: { [p: string]: unknown; }, skip?: number, limit?: number): Promise>; findSubscriptions(where: { [p: string]: unknown; }, skip?: number, limit?: number): Promise>; findTopicARN(arn: ARN): Promise; findTopics(where: { [p: string]: unknown; }, skip?: number, limit?: number): Promise>; markPublished(publish_: Publish): Promise; removeSubscriptions(subscriptions: Array): Promise; totalSubscriptions(where: { [p: string]: unknown; }): Promise; totalTopics(where: { [p: string]: unknown; }): Promise; updateTopicAttributes(topic: Topic): Promise; findAccessKeys(where: { [p: string]: unknown; }, skip?: number, limit?: number): Promise>; findUsers(where: { [p: string]: unknown; }, skip?: number, limit?: number): Promise>; accessKey(accessKey: string, secretKey: string, userId: string): Promise; createUser(organizationId: string): Promise; updateAccessKey(accessKey: AccessKey): Promise; } export { MongoDBAdapter };