import { Repository } from './repository'; import { Options } from './common-types'; import { Model } from './model'; import { ObjectType } from './common-types'; import { Filter } from './query'; /** * Key/Value operations for connector implementations */ export interface KVRepository extends Repository { /** * Delete an entry by key * * @param key * @param options */ delete(key: string, options?: Options): Promise; /** * Delete all entries * * @param key * @param options */ deleteAll(options?: Options): Promise; /** * Get an entry by key * * @param key * @param options */ get(key: string, options?: Options): Promise; /** * Set an entry with key/value * * @param key * @param options */ set(key: string, value: ObjectType, options?: Options): Promise; /** * Set up ttl for an entry by key * * @param key * @param options */ expire(key: string, ttl: number, options?: Options): Promise; /** * Get ttl for an entry by key * * @param key * @param options */ ttl?(key: string, ttl: number, options?: Options): Promise; /** * Fetch all keys * * @param key * @param options */ keys?(options?: Options): Promise; /** * Get an Iterator for matching keys * * @param filter * @param options */ iterateKeys?(filter?: Filter, options?: Options): Promise>; }