UNPKG

@visualjs/grid

Version:
22 lines (21 loc) 741 B
import { Store } from "."; export declare type AnyStores<S> = { [K in keyof S]: Store<any, any>; }; export declare type StateOfStore<S extends Store<any, any>> = S extends Store<infer State, any> ? State : never; declare type Actions<T> = { [P in keyof T]: undefined; }; export declare type RootState<S extends AnyStores<S>> = { [K in keyof S]: StateOfStore<S[K]>; }; export declare type Stores<S extends AnyStores<S>> = { [K in keyof S]: S[K]; }; export declare class Root<S extends AnyStores<S>> extends Store<RootState<S>, Actions<S>> { stores: Stores<S>; constructor(stores: Stores<S>); store<K extends keyof S>(s: K): Stores<S>[K]; state<K extends keyof S>(s: K): RootState<S>[K]; } export default Root;