abon
Version:
Flexible state management for React 🚀
29 lines (28 loc) • 3.25 kB
TypeScript
import { ReadonlyAbonDeep } from "./readonly-abon-deep";
/** Subscribe to, retrieve, and set deeply nested values. */
export declare class AbonDeep<T extends object> extends ReadonlyAbonDeep<T> {
current: T;
constructor(initial?: T);
set(value: T): this;
set(keys: [], value: T): this;
set<K extends keyof T>(key: K, value: T[K]): this;
set<K extends keyof T>(keys: [K], value: T[K]): this;
set<K1 extends keyof T, K2 extends keyof T[K1]>(_1: K1, _2: K2, value: T[K1][K2]): this;
set<K1 extends keyof T, K2 extends keyof T[K1]>(keys: [K1, K2], value: T[K1][K2]): this;
set<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2]>(_1: K1, _2: K2, _3: K3, value: T[K1][K2][K3]): this;
set<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2]>(keys: [K1, K2, K3], value: T[K1][K2][K3]): this;
set<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3]>(_1: K1, _2: K2, _3: K3, _4: K4, value: T[K1][K2][K3][K4]): this;
set<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3]>(keys: [K1, K2, K3, K4], value: T[K1][K2][K3][K4]): this;
set<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4]>(_1: K1, _2: K2, _3: K3, _4: K4, _5: K5, value: T[K1][K2][K3][K4][K5]): this;
set<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4]>(keys: [K1, K2, K3, K4, K5], value: T[K1][K2][K3][K4][K5]): this;
set<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4], K6 extends keyof T[K1][K2][K3][K4][K5]>(_1: K1, _2: K2, _3: K3, _4: K4, _5: K5, _6: K6, value: T[K1][K2][K3][K4][K5][K6]): this;
set<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4], K6 extends keyof T[K1][K2][K3][K4][K5]>(keys: [K1, K2, K3, K4, K5, K6], value: T[K1][K2][K3][K4][K5][K6]): this;
set<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4], K6 extends keyof T[K1][K2][K3][K4][K5], K7 extends keyof T[K1][K2][K3][K4][K5][K6]>(_1: K1, _2: K2, _3: K3, _4: K4, _5: K5, _6: K6, _7: K6, value: T[K1][K2][K3][K4][K5][K6][K7]): this;
set<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4], K6 extends keyof T[K1][K2][K3][K4][K5], K7 extends keyof T[K1][K2][K3][K4][K5][K6]>(keys: [K1, K2, K3, K4, K5, K6, K7], value: T[K1][K2][K3][K4][K5][K6][K7]): this;
notify(): this;
notify(keys: (keyof any)[], ...args: any[]): this;
protected get rootSubscriptionArgs(): any[];
static set<T>(object: object, path: readonly (keyof any)[], value: any): T;
static use<T extends object>(initial?: () => T, deps?: readonly any[]): AbonDeep<T>;
static useRef<T extends object>(initial?: () => T, deps?: readonly any[]): AbonDeep<T>;
}