import { ObservableQuery, ObservableQueryBaseResult, ObservableQueryOptions } from './observableQuery'; import { QueryClient, ResultOptions } from './queryClient'; import { QueryInfo } from './queryInfo'; import { InfiniteQuery } from './queryWithInfinite'; import { Override } from './typeUtils'; import { InfiniteData } from './types'; export interface FetchNextPageOptions extends ResultOptions { cancelRefetch?: boolean; } export interface FetchPreviousPageOptions extends ResultOptions { cancelRefetch?: boolean; } export interface ObservableInfiniteQueryOptions> extends ObservableQueryOptions, TData> { query: InfiniteQuery; } export interface ObservableInfiniteQueryBaseResult extends ObservableQueryBaseResult { fetchNextPage: (options?: FetchNextPageOptions) => Promise>; fetchPreviousPage: (options?: FetchPreviousPageOptions) => Promise>; hasNextPage: boolean; hasPreviousPage: boolean; isFetchingNextPage: boolean; isFetchingPreviousPage: boolean; } export interface ObservableInfiniteQueryLoadingResult extends ObservableInfiniteQueryBaseResult { data: undefined; error: null; } export interface ObservableInfiniteQueryLoadingErrorResult extends ObservableInfiniteQueryBaseResult { data: undefined; error: TError; } export interface ObservableInfiniteQuerySuccessResult extends ObservableInfiniteQueryBaseResult { data: TData; error: null; } export type ObservableInfiniteQueryResult = ObservableInfiniteQueryLoadingResult | ObservableInfiniteQueryLoadingErrorResult | ObservableInfiniteQuerySuccessResult; type ObservableInfiniteQueryListener = (result: ObservableInfiniteQueryResult) => void; export interface ObservableInfiniteQuery> extends Override, TData>, { subscribe: (listener?: ObservableInfiniteQueryListener) => () => void; createResult: (queryInfo: QueryInfo>, options: ObservableInfiniteQueryOptions) => ObservableInfiniteQueryResult; getCurrentResult: () => ObservableInfiniteQueryResult; getOptimisticResult: (options: ObservableInfiniteQueryOptions) => ObservableInfiniteQueryResult; }> { fetchNextPage: (options?: FetchNextPageOptions) => Promise>; fetchPreviousPage: (options?: FetchPreviousPageOptions) => Promise>; } export declare const createObservableInfiniteQuery: >(client: QueryClient, initialOptions: ObservableInfiniteQueryOptions) => ObservableInfiniteQuery; export {};