UNPKG

nedux

Version:

the next redux state management

18 lines (17 loc) 957 B
import { NextObserver, Subscription } from 'rxjs'; declare type DefaultState = { [key: string]: any; }; declare type SubscriptionOptions = { withInitialValue?: boolean; }; export interface Store<T extends DefaultState = DefaultState, K extends keyof T = keyof T> { get: <Key extends K, Value extends T[K] = T[Key]>(key: Key) => Value; set: <Key extends K, Value extends T[K] = T[Key]>(key: Key, value: Value | ((prevValue: Value) => Value)) => void; subscribe: <Key extends K, Value extends T[K] = T[Key]>(key: Key | '', observer: NextObserver<Value> | ((value: Value, key: Key) => any), options?: SubscriptionOptions) => Subscription | Subscription[]; } export interface Middleware<T, K extends keyof T> { (store: Store<T, K>): void; } export declare const createStore: <T extends DefaultState, K extends keyof T = keyof T, U extends K = K>(initState: T, middleware?: Middleware<T, U>[]) => Store<T, K>; export {};