import { Ref, ShallowRef } from 'vue';
export type AsyncDataProps
= {
/**
* 异步获取数据方法
* @param params
*/
fetcher: (params: P) => D | Promise;
/**
* 获取数据方法的参数
*/
params?: (P | (() => P));
/**
* 异步数据数据方法返回的默认值
*/
defaultData?: D;
};
export type AsyncDataPropsEmits = {
/**
* 获取成功事件
* @param error
*/
error: [error: any];
/**
* 获取失败事件
* @param data
*/
success: [data: D];
};
export type AsyncDataPropsExpose = {
/**
* 串行获取数据
* @param params 可以重新传递参数
*/
refresh: (params?: T) => Promise;
};
type UseGetAsyncDataReturnType = {
loading: Ref;
validating: Ref;
error: Ref;
data: ShallowRef;
mutate: (data: D) => void;
refresh: (params?: P) => Promise;
};
export declare const useGetAsyncData: (params: (P | (() => P)), fetcher: (params: P) => D | Promise, options?: {
defaultData?: D;
onError?: (error: any) => void;
onSuccess?: (data: D) => void;
}) => UseGetAsyncDataReturnType;
export {};