type StoreListener = VoidFunction; type StoreCompareFn = (a: T, b: T) => boolean; declare function createStore>(initialState: T, compare?: StoreCompareFn): Store; interface Store> { subscribe: (listener: StoreListener) => () => void; get: (key: K) => T[K]; set: (key: K, value: T[K]) => void; update: (updates: Partial) => void; snapshot: () => T; } export { type Store, type StoreCompareFn, type StoreListener, createStore };