import { Selector, SelectorWithProps } from './models'; export declare type AnyFn = (...args: any[]) => any; export declare type MemoizedProjection = { memoized: AnyFn; reset: () => void; setResult: (result?: any) => void; clearResult: () => void; }; export declare type MemoizeFn = (t: AnyFn) => MemoizedProjection; export declare type ComparatorFn = (a: any, b: any) => boolean; export declare type DefaultProjectorFn = (...args: any[]) => T; export interface MemoizedSelector> extends Selector { release(): void; projector: ProjectorFn; setResult: (result?: Result) => void; clearResult: () => void; } /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export interface MemoizedSelectorWithProps> extends SelectorWithProps { release(): void; projector: ProjectorFn; setResult: (result?: Result) => void; clearResult: () => void; } export declare function isEqualCheck(a: any, b: any): boolean; export declare function resultMemoize(projectionFn: AnyFn, isResultEqual: ComparatorFn): MemoizedProjection; export declare function defaultMemoize(projectionFn: AnyFn, isArgumentsEqual?: typeof isEqualCheck, isResultEqual?: typeof isEqualCheck): MemoizedProjection; export declare function createSelector(s1: Selector, projector: (s1: S1) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(s1: SelectorWithProps, projector: (s1: S1, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(selectors: [Selector], projector: (s1: S1) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(selectors: [SelectorWithProps], projector: (s1: S1, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(s1: Selector, s2: Selector, projector: (s1: S1, s2: S2) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(s1: SelectorWithProps, s2: SelectorWithProps, projector: (s1: S1, s2: S2, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(selectors: [Selector, Selector], projector: (s1: S1, s2: S2) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(selectors: [ SelectorWithProps, SelectorWithProps ], projector: (s1: S1, s2: S2, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(s1: Selector, s2: Selector, s3: Selector, projector: (s1: S1, s2: S2, s3: S3) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(s1: SelectorWithProps, s2: SelectorWithProps, s3: SelectorWithProps, projector: (s1: S1, s2: S2, s3: S3, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(selectors: [Selector, Selector, Selector], projector: (s1: S1, s2: S2, s3: S3) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(selectors: [ SelectorWithProps, SelectorWithProps, SelectorWithProps ], projector: (s1: S1, s2: S2, s3: S3, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(s1: Selector, s2: Selector, s3: Selector, s4: Selector, projector: (s1: S1, s2: S2, s3: S3, s4: S4) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(s1: SelectorWithProps, s2: SelectorWithProps, s3: SelectorWithProps, s4: SelectorWithProps, projector: (s1: S1, s2: S2, s3: S3, s4: S4, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(selectors: [ Selector, Selector, Selector, Selector ], projector: (s1: S1, s2: S2, s3: S3, s4: S4) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(selectors: [ SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps ], projector: (s1: S1, s2: S2, s3: S3, s4: S4, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(s1: Selector, s2: Selector, s3: Selector, s4: Selector, s5: Selector, projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(s1: SelectorWithProps, s2: SelectorWithProps, s3: SelectorWithProps, s4: SelectorWithProps, s5: SelectorWithProps, projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(selectors: [ Selector, Selector, Selector, Selector, Selector ], projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(selectors: [ SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps ], projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(s1: Selector, s2: Selector, s3: Selector, s4: Selector, s5: Selector, s6: Selector, projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(s1: SelectorWithProps, s2: SelectorWithProps, s3: SelectorWithProps, s4: SelectorWithProps, s5: SelectorWithProps, s6: SelectorWithProps, projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(selectors: [ Selector, Selector, Selector, Selector, Selector, Selector ], projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(selectors: [ SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps ], projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(s1: Selector, s2: Selector, s3: Selector, s4: Selector, s5: Selector, s6: Selector, s7: Selector, projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(s1: SelectorWithProps, s2: SelectorWithProps, s3: SelectorWithProps, s4: SelectorWithProps, s5: SelectorWithProps, s6: SelectorWithProps, s7: SelectorWithProps, projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(selectors: [ Selector, Selector, Selector, Selector, Selector, Selector, Selector ], projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(selectors: [ SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps ], projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(s1: Selector, s2: Selector, s3: Selector, s4: Selector, s5: Selector, s6: Selector, s7: Selector, s8: Selector, projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7, s8: S8) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(s1: SelectorWithProps, s2: SelectorWithProps, s3: SelectorWithProps, s4: SelectorWithProps, s5: SelectorWithProps, s6: SelectorWithProps, s7: SelectorWithProps, s8: SelectorWithProps, projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7, s8: S8, props: Props) => Result): MemoizedSelectorWithProps; export declare function createSelector(selectors: [ Selector, Selector, Selector, Selector, Selector, Selector, Selector, Selector ], projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7, s8: S8) => Result): MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelector(selectors: [ SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps, SelectorWithProps ], projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7, s8: S8, props: Props) => Result): MemoizedSelectorWithProps; export declare function defaultStateFn(state: any, selectors: Selector[] | SelectorWithProps[], props: any, memoizedProjector: MemoizedProjection): any; export declare type SelectorFactoryConfig = { stateFn: (state: T, selectors: Selector[], props: any, memoizedProjector: MemoizedProjection) => V; }; export declare function createSelectorFactory(memoize: MemoizeFn): (...input: any[]) => MemoizedSelector; export declare function createSelectorFactory(memoize: MemoizeFn, options: SelectorFactoryConfig): (...input: any[]) => MemoizedSelector; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelectorFactory(memoize: MemoizeFn): (...input: any[]) => MemoizedSelectorWithProps; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare function createSelectorFactory(memoize: MemoizeFn, options: SelectorFactoryConfig): (...input: any[]) => MemoizedSelectorWithProps; export declare function createFeatureSelector(featureName: string): MemoizedSelector; export declare function createFeatureSelector(featureName: keyof T): MemoizedSelector;