import { Ref } from '@vue/composition-api';
export interface ReturnValue<Result = any> {
    loading: Ref<boolean>;
    error: Ref<Error>;
    resp: Ref<Result>;
    run: (...args: any[]) => Promise<Result>;
}
export interface Options<Result = any> {
    manual?: boolean;
    initialData?: Result;
    onSuccess?: (data: Result, params?: any[]) => void;
    onError?: (e: Error, params?: any[]) => void;
    params?: any[];
}
declare function useAsync<Result = any>(fn: (...args: any[]) => Promise<Result>, options?: Options<Result>): ReturnValue<Result>;
export default useAsync;
