import { Selector } from 'reselect'; type Fn = (...args: any[]) => any; type CreateSelectorFunction = >, const Combiner extends (...args: readonly [...ReturnTypes, ...Args]) => any>(...items: [...Selectors, Combiner]) => (...args: Selectors['length'] extends 0 ? MergeParams, Parameters> : [StateFromSelectorList, ...MergeParams, Parameters>]) => ReturnType; type StateFromSelectorList = Selectors extends [f: infer F, ...other: infer R] ? StateFromSelector extends StateFromSelectorList ? StateFromSelector : StateFromSelectorList : {}; type StateFromSelector = T extends ((first: infer F, ...args: any[]) => any) ? F : never; type DropFirst = T extends [any, ...infer Xs] ? Xs : []; type ReturnTypes = { [Index in keyof FunctionsArray]: FunctionsArray[Index] extends FunctionsArray[number] ? ReturnType : never }; type MergeParams = STypes['length'] extends 0 ? CTypes : MergeParams, DropFirst>; /** * Creates a selector function that can be used to derive values from the store's state. * The selector can take up to three additional arguments that can be used in the selector logic. * This function accepts up to six functions and combines them into a single selector function. * The last parameter is the combiner function that combines the results of the previous selectors. * * @example * const selector = createSelector( * (state) => state.disabled * ); * * @example * const selector = createSelector( * (state) => state.disabled, * (state) => state.open, * (disabled, open) => ({ disabled, open }) * ); * */ export declare const createSelector: CreateSelectorFunction; export declare const createSelectorMemoized: CreateSelectorFunction; export {};