rsxjs
Version:
Resilience Extensions for JS.
25 lines (24 loc) • 769 B
TypeScript
/**
* @file src/store/state.ts
* @description Type-safe wrapper over stores.
* @copyright 2018-present Karim Alibhai. All rights reserved.
*/
import { Store } from './store';
export declare class State<T extends {
[key: string]: any;
}> {
private readonly store;
private readonly namespace;
private readonly defaults;
constructor({ store, namespace, defaults, }: {
store?: Store;
namespace?: string;
defaults?: T;
});
get<K extends keyof T, V extends T[K]>(key: K): Promise<V>;
set<K extends keyof T, V extends T[K]>(key: K, value: V): Promise<void>;
incr<K extends keyof T>(key: K): Promise<void>;
decr<K extends keyof T>(key: K): Promise<void>;
reset(): Promise<void>;
dump(): Promise<T>;
}