import { createFnsWire } from '../fn-wire/create-fns-wire'; import { createStateSelector, ReadOnlySelectorOptions, SelectorOptions, WritableSelectorOptions, } from '../state-selector/create-state-selector'; import { ReadonlyWire, Wire } from '../wire/wire'; export function createSelector( options: WritableSelectorOptions, ): Wire; export function createSelector( options: ReadOnlySelectorOptions, ): ReadonlyWire; export function createSelector( options: SelectorOptions, ): ReadonlyWire | Wire { const [fnsWire, connectFnsWire] = createFnsWire({}); const [stateSelector, connectStateSelector] = createStateSelector(options); connectFnsWire(); connectStateSelector(); return { ...fnsWire, ...stateSelector }; }