import type { StoreTracker } from './useStore' export type Selector = (x: A) => B export type UseStoreSelector = (store: Store) => Res export type UseStoreOptions = { debug?: boolean selector?: UseStoreSelector once?: boolean } export interface Store | null | undefined> { new (...args: any[]): any props: Props } export type StoreInfo = { uid: string keyComparators?: { [key: string]: (a: any, b: any) => boolean } // proxied store store: A props: Record | null storeInstance: any getters: { [key: string]: any } actions: any stateKeys: Set debug?: boolean gettersState: { getCache: Map depsToGetter: Map> curGetKeys: Set isGetting: boolean } listeners: Set trackers: Set version: number subscribe: (onChanged: () => void) => () => void triggerUpdate: Function disableTracking: boolean } export type UseStoreConfig = { logLevel?: 'debug' | 'info' | 'error' }