import type { ClientId, PacketId, Topic, TopicFilter } from "./deps.ts"; import type { ClientRegistrationResult, ClientSubscription, ExtPublishPacket, ShareName } from "./persistence.ts"; export type StoredSubscription = ClientSubscription & { clientId: ClientId; }; export declare const PacketDirection: { readonly Incoming: 0; readonly Outgoing: 1; }; export type PacketDirection = typeof PacketDirection[keyof typeof PacketDirection]; export interface StorageProvider { initialize(): Promise; close?(): Promise; saveSession(clientId: ClientId, session: ClientRegistrationResult): Promise; getSession(clientId: ClientId): Promise; deleteSession(clientId: ClientId): Promise; listAllSessions(): AsyncIterableIterator<{ clientId: ClientId; session: ClientRegistrationResult; }>; saveSubscription(clientId: ClientId, sub: ClientSubscription): Promise; deleteSubscription(clientId: ClientId, topicFilter: TopicFilter, shareName: ShareName): Promise; listSubscriptions(clientId: ClientId): AsyncIterableIterator; listAllSubscriptions(): AsyncIterableIterator; savePendingPacket(clientId: ClientId, direction: PacketDirection, packet: ExtPublishPacket): Promise; getPendingPacket(clientId: ClientId, direction: PacketDirection, packetId: PacketId): Promise; updatePendingPacket(clientId: ClientId, direction: PacketDirection, packetId: PacketId, dup: boolean): Promise; deletePendingPacket(clientId: ClientId, direction: PacketDirection, packetId: PacketId): Promise; listPendingPackets(clientId: ClientId, direction: PacketDirection): AsyncIterableIterator; savePendingAck(clientId: ClientId, packetId: PacketId): Promise; hasPendingAck(clientId: ClientId, packetId: PacketId): Promise; deletePendingAck(clientId: ClientId, packetId: PacketId): Promise; listPendingAcks(clientId: ClientId): AsyncIterableIterator; saveRetained(topic: Topic, packet: ExtPublishPacket): Promise; deleteRetained(topic: Topic): Promise; listRetainedMatches(topicFilter: TopicFilter): AsyncIterableIterator; } //# sourceMappingURL=storage.d.ts.map