// Type definitions for keyv 3.1 // Project: https://github.com/lukechilds/keyv // Definitions by: AryloYeung // BendingBender // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.8 /// import { EventEmitter } from 'events'; declare class Keyv extends EventEmitter { /** * @param opts The options object is also passed through to the storage adapter. Check your storage adapter docs for any extra options. */ constructor(opts?: Keyv.Options); /** * @param uri The connection string URI. * * Merged into the options object as options.uri. * @param opts The options object is also passed through to the storage adapter. Check your storage adapter docs for any extra options. */ constructor(uri?: string, opts?: Keyv.Options); /** Returns the value. */ get(key: string): Promise; /** * Set a value. * * By default keys are persistent. You can set an expiry TTL in milliseconds. */ set(key: string, value: TValue, ttl?: number): Promise; /** * Deletes an entry. * * Returns `true` if the key existed, `false` if not. */ delete(key: string): Promise; /** Delete all entries in the current namespace. */ clear(): Promise; } declare namespace Keyv { interface Options { /** Namespace for the current instance. */ namespace?: string | undefined; /** A custom serialization function. */ serialize?: ((data: TValue) => string) | undefined; /** A custom deserialization function. */ deserialize?: ((data: string) => TValue) | undefined; /** The connection string URI. */ uri?: string | undefined; /** The storage adapter instance to be used by Keyv. */ store?: Store | undefined; /** Default TTL. Can be overridden by specififying a TTL on `.set()`. */ ttl?: number | undefined; /** Specify an adapter to use. e.g `'redis'` or `'mongodb'`. */ adapter?: 'redis' | 'mongodb' | 'mongo' | 'sqlite' | 'postgresql' | 'postgres' | 'mysql' | undefined; [key: string]: any; } interface Store { get(key: string): TValue | Promise | undefined; set(key: string, value: TValue, ttl?: number): any; delete(key: string): boolean | Promise; clear(): void | Promise; } } export = Keyv;