import type { MongoStorage } from '../index.js'; import { type SignalDataTypeMap } from '@whiskeysockets/baileys'; import CRUD from './CRUD.js'; import type { Logger } from '../../../types/index.js'; import type { Db, ObjectId } from './CRUD.js'; export interface AuthKeyDoc { _id: string | ObjectId; type: keyof SignalDataTypeMap; id: string; data: unknown; } declare class AuthKeys extends CRUD { protected readonly storage: MongoStorage; static collectionName: string; constructor(storage: MongoStorage, mongodb: Db, logger: Logger | null); private indexes; /** * Retrieve Signal protocol keys from MongoDB. * * @param type - Type of the key (e.g., "app-state-sync-key", "sender-key", etc.) * @param ids - Array of IDs for which to fetch keys * @returns Map of ID to key value */ get(type: T, ids: string[]): Promise<{ [id: string]: SignalDataTypeMap[T]; }>; /** * Set or delete Signal protocol keys in MongoDB. * * @param keys - Keys to update or delete, grouped by type and ID */ set(keys: { [T in keyof SignalDataTypeMap]?: { [id: string]: SignalDataTypeMap[T] | null; }; }): Promise; } export default AuthKeys;