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