import * as React from 'react'; import type { ReadonlyStore } from './Store'; /* * Simplified from Base UI's useStore: zest requires React >= 19, so the * `use-sync-external-store` shim and the `fastHooks` batching layer are omitted. */ export function useStore( store: ReadonlyStore, selector: (state: State) => Value, ): Value; export function useStore( store: ReadonlyStore, selector: (state: State, a1: A1) => Value, a1: A1, ): Value; export function useStore( store: ReadonlyStore, selector: (state: State, a1: A1, a2: A2) => Value, a1: A1, a2: A2, ): Value; export function useStore( store: ReadonlyStore, selector: (state: State, a1: A1, a2: A2, a3: A3) => Value, a1: A1, a2: A2, a3: A3, ): Value; export function useStore( store: ReadonlyStore, selector: Function, a1?: unknown, a2?: unknown, a3?: unknown, ): unknown { const getSelection = React.useCallback( () => selector(store.getSnapshot(), a1, a2, a3), [store, selector, a1, a2, a3], ); return React.useSyncExternalStore(store.subscribe, getSelection, getSelection); }