type LoadFn<T> = (offset: number) => Promise<{
    data: T[];
    total: number;
}>;
interface Options {
    retryOnError?: number;
}
interface State<T> {
    error: Error | undefined;
    data: T[];
    loading: boolean;
    total: undefined | number;
    tries: number;
}
type InitializerArg<T> = Partial<Pick<State<T>, 'data' | 'total'>>;
export declare function useInfiniteLoading<T>(loaderFn: LoadFn<T>, initialData?: T[] | InitializerArg<T>, { retryOnError }?: Options): {
    load: () => Promise<void>;
    loading: boolean;
    error: Error | undefined;
    data: T[];
    count: number;
    total: number | undefined;
    done: boolean;
};
export {};
