export declare type IPromisified = (...args: any[]) => Promise; export declare type Methods = 'hmset' | 'hmget' | 'hgetall' | 'expire' | 'del' | 'scan' | 'hincrbyfloat'; export declare type IMultiCommands = Array<[string, string, ...any[]]>; export declare type IMulti = (commands: IMultiCommands) => Promise; export declare type IRedisMethods = { [K in Methods]: IPromisified; } & { multi: IMulti; }; export declare type IRedisClient = IRedisMethods; export declare type Transaction = any; export interface IDelOptions { transaction?: Transaction; } export interface ISetOptions { expire?: number; transaction?: Transaction; } /** * Stringifier will be used to convert a custom * object to a string when `set` is called */ export interface IStringifier { [constructorName: string]: (val: any) => string; } /** * Parser will be used to convert the string * back to custom object when `get` is called */ export interface IParser { [constructorName: string]: (val: string) => any; } /** * JSONCache options */ export interface IOptions { /** * Custom prefix to be used for storage * namespace separation */ prefix?: string; /** * Stringifier will be used to convert a custom * object to a string when `set` is called */ stringifier?: IStringifier; /** * Parser will be used to convert the string * back to custom object when `get` is called */ parser?: IParser; }