import { LoaderInferred, LoaderServerAction, LoaderServerResponse } from "./types";
export interface UseLoaderProps {
    retry?: number;
    delay?: number;
    debounce?: number;
    throttle?: number;
}
export type UseLoaderReturn<T, P = any> = [
    LoaderServerResponse<T> | null,
    {
        load: LoaderInferred<P>;
        debounce: LoaderInferred<P>;
        throttle: LoaderInferred<P>;
        cancel: () => void;
        reset: () => void;
    }
];
export default function createLoader<T, P = any>(name: string, action: LoaderServerAction<T, P>): (props?: UseLoaderProps) => UseLoaderReturn<T, P>;
