type Listener = (value: T) => void; export declare class Store { state: State; private listeners; private updateTick; static create(state: T): Store; constructor(state: State); subscribe: (fn: Listener) => () => void; /** * Returns the current state snapshot. Meant for usage with `useSyncExternalStore`. * If you want to access the state, use the `state` property instead. */ getSnapshot: () => State; setState(newState: State): void; update(changes: Partial): void; set(key: Key, value: T): void; use: any>(selector: F, ...args: SelectorArgs) => ReturnType; } export type ReadonlyStore = Pick, 'getSnapshot' | 'subscribe' | 'state'>; type SelectorArgs = Selector extends ((...params: infer Params) => any) ? Tail : never; type Tail = T extends readonly [any, ...infer Rest] ? Rest : []; export {};