import type { Ref } from 'vue'; interface RequestResult { loading: Ref; result: any; search: any; getData: (reloadSize?: number) => Promise; onRefresh: (isReload?: boolean) => Promise; onLoad: (isReload?: boolean) => Promise; getParamsVal: (reloadSize?: number) => any; } interface Request { (other?: any): Promise; } interface ListOptions { getLength?: (data: any) => number; getTotal?: (data: any) => number; getFinished?: (data: any, total: any) => boolean; default?: any; defaultPageKey?: string; defaultSizeKey?: string; defaultDataKey?: string; defaultLoadingKey?: string; defaultFinishedKey?: string; defaultTotalKey?: string; defaultRefreshKey?: string; defaultPage?: number; defaultSize?: number; } interface Options { target?: string; listOptions?: ListOptions; getVal?: (data: any) => any; loadingDelay?: number; onRequestEnd?: (err: any, resData: any) => void; } /** * @description useRequest * @param request - 请求函数或者返回请求函数的函数 * @param options - Options * @param options.target - Target * @param options.listOptions - List options * @param options.getVal - Get value * @param options.loadingDelay - Loading delay * @returns RequestResult * @example * ```ts * // 旧方式 * const { loading, result, getData, onRefresh, onLoad, search } = useRequest(request) * // 新方式 * const { loading, result, getData, onRefresh, onLoad, search } = useRequest(() => newRequest) * ``` */ declare function useRequest(request: Request | (() => Request), options?: Options): RequestResult; export default useRequest;