export declare type keyable = string | number | symbol; export declare type KeyExtractor = ((...args: T) => R) | R; export declare type StoreDec = (key: KeyExtractor) => MethodDecorator; export declare type UpdateDec = (key: KeyExtractor) => MethodDecorator; export declare type RemoveDec = (key: KeyExtractor) => MethodDecorator; export interface Store { set(key: K, val: any): Promise; get(key: K): Promise; remove(key: K): Promise; } export declare type PromiseFunc = (...args: A) => Promise | R;