import { useSelect as useSelectOriginal } from '@wordpress/data'

type SelectorsByStore = {
  'core/block-editor': typeof import('@wordpress/block-editor/store/selectors')
  'core/editor': typeof import('@wordpress/editor/store/selectors')
}

export default function useSelect<T>(
  mapSelect: (
    select: <U extends keyof SelectorsByStore>(store: U) => SelectorsByStore[U]
  ) => T,
  deps?: unknown[]
): T {
  return useSelectOriginal(mapSelect as any, deps ?? [])
}
