import { Observable } from 'rxjs'; /** * Custom equality checker that can be used with `.select` and `@select`. * ```ts * const customCompare: Comparator = (x: any, y: any) => { * return x.id === y.id * } * * @select(selector, customCompare) * ``` */ export declare type Comparator = (x: any, y: any) => boolean; export declare type Transformer = (store$: Observable, scope: any) => Observable; export declare type PropertySelector = string | number | symbol; export declare type PathSelector = (string | number)[]; export declare type FunctionSelector = (s: RootState) => S; export declare type Selector = PropertySelector | PathSelector | FunctionSelector; /** @hidden */ export declare const sniffSelectorType: (selector?: Selector) => "function" | "nil" | "path" | "property"; /** @hidden */ export declare const resolver: (selector?: Selector) => { property: (state: any) => any; path: (state: RootState) => any; function: FunctionSelector; nil: (state: RootState) => RootState; }; /** @hidden */ export declare const resolveToFunctionSelector: (selector?: Selector) => FunctionSelector | ((state: RootState) => RootState) | ((state: RootState) => any) | ((state: any) => any);