import * as React from 'react'; import { Selector, SelectorResultArray } from 'reselect'; declare type CacheKey = number | string; export interface OutputSelector { (apiRef: React.MutableRefObject<{ state: State; instanceId: number; }>): Result; (state: State, instanceId?: number): Result; acceptsApiRef: boolean; } declare type StateFromSelector = T extends (first: infer F, ...args: any[]) => any ? F extends { state: infer F2; } ? F2 : F : never; declare type StateFromSelectorList = Selectors extends [ f: infer F, ...rest: infer R ] ? StateFromSelector extends StateFromSelectorList ? StateFromSelector : StateFromSelectorList : {}; declare type SelectorArgs>, Result> = [selectors: [...Selectors], combiner: (...args: SelectorResultArray) => Result] | [...Selectors, (...args: SelectorResultArray) => Result]; declare type CreateSelectorFunction = >, Result>(...items: SelectorArgs) => OutputSelector, Result>; export declare const createSelector: CreateSelectorFunction; export declare const unstable_resetCreateSelectorCache: (cacheKey?: CacheKey) => void; export {};