import { MonoTypeOperatorFunction, Observable, OperatorFunction } from 'rxjs'; export interface BaseRequestResult { staleTime?: number; successfulRequestsCount: number; } export interface LoadingRequestResult extends BaseRequestResult { isLoading: true; isSuccess: false; isError: false; status: 'loading'; fetchStatus: 'fetching' | 'idle'; } export interface SuccessRequestResult extends BaseRequestResult { isLoading: false; isSuccess: true; isError: false; status: 'success'; fetchStatus: 'idle'; responseData?: TData; dataUpdatedAt?: number; } export interface ErrorRequestResult extends BaseRequestResult { isLoading: false; isSuccess: false; isError: true; status: 'error'; fetchStatus: 'idle'; error: TError; errorUpdatedAt?: number; } export interface IdleRequestResult extends BaseRequestResult { isLoading: false; isSuccess: false; isError: false; status: 'idle'; fetchStatus: 'idle'; } export type RequestResult = LoadingRequestResult | SuccessRequestResult | ErrorRequestResult | IdleRequestResult; export declare function getRequestResult(key: unknown[], { initialStatus }?: { initialStatus?: 'idle'; }): Observable>; export declare function clearRequestsResult(): void; export declare function deleteRequestResult(key: unknown[]): void; export declare function resetStaleTime(key: unknown[]): void; export declare function joinRequestResult(...[key, options]: Parameters): OperatorFunction & { data: T; }>; interface Options { staleTime?: number; skipCache?: boolean; preventConcurrentRequest?: boolean; cacheResponseData?: boolean; additionalKeys?: (_: TData) => unknown[][]; } export declare function trackRequestResult(key: unknown[], options?: Options): MonoTypeOperatorFunction; export declare function filterSuccess(): OperatorFunction; export declare function filterError(): OperatorFunction, ErrorRequestResult>; export declare function mapResultData(mapFn: (data: NonNullable) => R): MonoTypeOperatorFunction; export {};