type ChangeFn = () => void; type UnsubscribeFn = () => void; type ActionFn = (this: T, ...args: any[]) => T | void; type StoreActions = Record>; export interface Store { getSnapshot(): T; subscribe(onChange: ChangeFn): UnsubscribeFn; dispatch(action: ActionKey, ...args: any[]): void; } export declare function createStore(initial: () => T, actions: StoreActions): Store; export {};