@visualjs/grid
Version:
JavaScript Data Table
22 lines (21 loc) • 741 B
TypeScript
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;