UNPKG

abon

Version:

Flexible state management for React 🚀

29 lines (28 loc) • 3.25 kB
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>; }