/** * Set storage: redis_sets. Empty set removes the key (Section 8.6). */ import type Database from './driver.ts'; import type { KeysStorage } from './keys.ts'; export declare function createSetsStorage(db: Database, keys: KeysStorage): { add(key: Buffer, members: Buffer[], options?: { updatedAt?: number; }): number; remove(key: Buffer, members: Buffer[]): number; members(key: Buffer): Buffer[]; has(key: Buffer, member: Buffer): boolean; count(key: Buffer): number; /** Copy all members from oldKey to newKey. Caller ensures newKey exists in redis_keys. */ copyKey(oldKey: Buffer, newKey: Buffer): void; /** Get random members without removing. count null/1 = single; count > 0 = up to count distinct; count < 0 = |count| with replacement. */ getRandomMembers(key: Buffer, count: number | null | undefined): Buffer | Buffer[] | null; /** Remove and return random members. Returns single member or array. */ popRandom(key: Buffer, count: number | null | undefined, options?: { updatedAt?: number; }): Buffer | Buffer[] | null; }; export type SetsStorage = ReturnType;