declare type DependencyList = ReadonlyArray<any>;
export declare type UsePromiseOptions<Params, Result> = {
    initialData: Result;
    deps: DependencyList;
    params: Params;
    onComplete: (data?: Result, err?: any) => void | Promise<void>;
    onFail: (err?: any) => void | Promise<void>;
    onSuccess: (data?: Result) => void | Promise<void>;
    onUnmount: () => void;
};
export declare type State<T> = {
    isSuccess: boolean;
    isLoading: boolean;
    isError: boolean;
    data: T | null;
    error: any;
    status: 'idle' | 'pending' | 'resolved' | 'rejected';
};
/**
 * This hook executes a Promise when calling the promiseHandler function.
 * @param promise Promise function to handle
 * @param options Initial options
 * @returns [state, promiseHandler, resetState]
 * @example
 * ```
const [state, promiseHandler, resetState ] = usePromise(promise, {
    deps:[],
    params: [],
    initialData: {},
    onComplete: (data, err) => {},
    onFail: (err) => {},
    onSuccess: (data) => {},
    onUnmount: () => {},
});
 *```
 * @see https://www.npmjs.com/package/@anb98/react-hooks#usePromise
 */
declare const usePromise: <PromiseFunction extends (...params: [] | any[]) => Promise<any>>(promise: PromiseFunction, options?: Partial<UsePromiseOptions<Parameters<PromiseFunction>, Awaited<ReturnType<PromiseFunction>>>> | undefined) => readonly [State<Awaited<ReturnType<PromiseFunction>>>, (...promiseParams: [] | Parameters<PromiseFunction>) => Promise<void>, () => void];
export default usePromise;
