import * as React from 'react'; import { Selector, SelectorResultArray } from 'reselect'; import type { GridCoreApi } from '../models/api/gridCoreApi'; export interface OutputSelector { (apiRef: React.MutableRefObject<{ state: State; instanceId: GridCoreApi['instanceId']; }>): Result; (state: State, instanceId: GridCoreApi['instanceId']): Result; acceptsApiRef: boolean; } export interface OutputSelectorV8 { (apiRef: React.MutableRefObject<{ state: State; instanceId: GridCoreApi['instanceId']; }>, args: Args): Result; (state: State, instanceId: GridCoreApi['instanceId']): Result; acceptsApiRef: boolean; } type StateFromSelector = T extends (first: infer F, ...args: any[]) => any ? F extends { state: infer F2; } ? F2 : F : never; type StateFromSelectorList = Selectors extends [ f: infer F, ...other: infer R ] ? StateFromSelector extends StateFromSelectorList ? StateFromSelector : StateFromSelectorList : {}; type SelectorArgs>, Result> = [selectors: [...Selectors], combiner: (...args: SelectorResultArray) => Result] | [...Selectors, (...args: SelectorResultArray) => Result]; type SelectorResultArrayWithArgs>, Args> = [ ...SelectorResultArray, Args ]; type SelectorArgsV8>, Args, Result> = [ selectors: [...Selectors], combiner: (...args: SelectorResultArrayWithArgs) => Result ] | [...Selectors, (...args: SelectorResultArrayWithArgs) => Result]; type CreateSelectorFunction = >, Result>(...items: SelectorArgs) => OutputSelector, Result>; type CreateSelectorFunctionV8 = >, Args, Result>(...items: SelectorArgsV8) => OutputSelectorV8, Args, Result>; export declare const createSelector: CreateSelectorFunction; export declare const createSelectorV8: CreateSelectorFunctionV8; export declare const createSelectorMemoized: CreateSelectorFunction; export declare const createSelectorMemoizedV8: CreateSelectorFunctionV8; export {};