import { Property } from 'kefir'; import { UnknownAction } from 'redux'; import { SelectorTraceInvalidationReason, SelectorTraceResultOutcome, StoreAction, StoreActionCreator, StoreSelectorCallback, StoreSelectorEffect, StoreState } from '../types'; export type Collection = ITEM[K] extends string ? { idField: K & string; ids: Array; map: Record; refsCount: Record; } : never; export type RefsCounter = ITEM[K] extends string ? Record : never; export type AccessedPath = (string | symbol)[]; export type CachedSelector = (state: STATE, ...args: ARGS) => R; export type SelectorInvalidationReason = SelectorTraceInvalidationReason; export type SelectorArgumentChange = { position: number; previousType: string; currentType: string; }; export type SelectorResultOutcome = SelectorTraceResultOutcome; export type SelectorAccessTrace = { selectorFunc: CachedSelector; recomputationCount: number; accessedPathCount?: number; accessedPaths?: Set; parsedPaths?: Map; executionDurationMs?: number; invalidationReason?: SelectorInvalidationReason; changedAccessedPaths?: Set; argumentsChanged?: boolean; changedArguments?: SelectorArgumentChange[]; resultOutcome?: SelectorResultOutcome; }; export type SelectorOutputCacheTrace = { selectorFunc: CachedSelector; observableCacheRequestCount: number; observableCacheCachedCount: number; outputCacheStatus: "hit" | "miss"; outputCacheRequestCount: number; outputCacheHitCount: number; outputCacheMissCount: number; }; export type SelectorTrace = SelectorAccessTrace | SelectorOutputCacheTrace; export type SelectorTraceReporter = (trace: SelectorTrace) => void; export type SelectorComputationTraceOptions = { traceReporter: SelectorTraceReporter; traceExecution: boolean; traceInvalidation: boolean; traceArguments: boolean; traceResults: boolean; }; export type CreateCachedSelectorOptions = { lockUpdatesPredicate?: (state: STATE) => boolean; traceReporter?: SelectorTraceReporter; traceExecution?: boolean; traceInvalidation?: boolean; traceArguments?: boolean; traceResults?: boolean; }; export type SelectorCadenceTickListener = (timestamp: number, listenerCount?: number) => void; export type SelectorCadenceSource = { readonly frequency: number; readonly frameIntervalMs: number; getSnapshot(): number; requestTick(): void; subscribe(listener: SelectorCadenceTickListener): () => void; dispose(): void; }; export type SelectorCadenceSourceOptions = { traceSelectors?: boolean; onTick?: SelectorCadenceTickListener; onSubscribe?: (listenerCount: number) => void; }; export type SelectorCadenceSourceProvider = () => SelectorCadenceSource; export type SelectorCadenceSourceSource = SelectorCadenceSource | SelectorCadenceSourceProvider | number; export type SelectorOutputCacheKey = (...args: any[]) => unknown; export type SelectorOutputFactory = (releaseInactiveOutput: () => void) => OUTPUT; export type SelectorOutputCacheOptions = { traceReporter?: SelectorTraceReporter; }; export type KefirSelectorProperty = { property: Property; getSnapshot: () => T; }; export type SelectorChannelSelector = { select: StoreSelectorCallback; effect: StoreSelectorEffect; }; export type SelectorChannelPayload = { payload: R; prevPayload: R | undefined | null; }; export type SelectorWorkerSaga = (payload: SelectorChannelPayload) => Generator; export type RetryWithTimeoutOutcome = "success" | "retries-exhausted" | "timeout"; export interface RetryWithTimeoutOptions { maxRetries: number; timeoutMs: number; getDelayMs?: (attempt: number) => number; onAttemptError?: (error: unknown, attempt: number, totalAttempts: number) => void; } export interface WrapStreamingGeneratorOptions { timeoutMs?: number; onError?: (error: unknown) => void; } export type BooleanPreferenceReducerBuilder = { (state: S | undefined, action: StoreAction | UnknownAction): S; with(action: StoreActionCreator, reducer: (state: S, action: StoreAction) => S): BooleanPreferenceReducerBuilder; initialState: S; }; export type StoreReducer = (state: S, action: A) => S; //# sourceMappingURL=types.d.ts.map