import { DependencyList } from 'react';
interface PageParams {
    page: number;
    pageSize: number;
}
interface Page<T> extends PageParams {
    list: T[];
    total: number;
    totalPage?: number;
}
interface InfiniteScrollOptions<TData> {
    manual?: boolean;
    refreshDeps?: DependencyList;
    onBefore?: () => void;
    onSuccess?: (data: TData) => void;
    onError?: (error: Error) => void;
    onFinally?: (data?: TData, error?: Error) => void;
}
declare function useInfiniteScroll<T>(service: (data: PageParams) => Promise<Page<T>>, options?: InfiniteScrollOptions<Page<T>>): {
    data: T[];
    loading: boolean;
    loadingMore: boolean;
    noMoreData: boolean;
    error: Error | undefined;
    loadMore: () => void;
    refresh: () => Promise<Page<T>>;
    cancel: () => void;
    mutate: import("react").Dispatch<import("react").SetStateAction<Page<T> | undefined>>;
};
export default useInfiniteScroll;
