export { APINameEnum } from "./ApiNameEnum"; /** 需要用到的data之外的数据 */ interface IExternalData { /** 服务器时间,取自接口外层数据的ts字段 */ serverTS?: number; } declare type ResponseData = Record & IExternalData; declare type RequestData = Record; export interface FetchOptions { request?: RequestInit; formatter?: (res: Response) => Promise; skip?: boolean; ignoreToken?: boolean; } export interface FetchHandler { onError?: (error: Error) => void; onComplete?: (data: any) => void; } /** 返回的请求方法的第三个参数 - 配置项 */ export interface DoFetchOptions { /** 强制更新参数,保持为最新 */ forceRefresh?: boolean; headers?: HeadersInit; } export declare type UpdateHandler = (previousResult: T & IExternalData, fetchResult: { fetchMoreResult: (T & IExternalData) | undefined; }) => T & IExternalData; export interface FetchMoreOptions

{ params?: P; update: UpdateHandler<(T & IExternalData) | undefined>; } declare class ApiError extends Error { code: number; constructor(message: string, code: number); } declare type useFetchReturn

= { loading: boolean; data: (T & IExternalData) | undefined; error: Error | ApiError | null; fetchMore: (options: FetchMoreOptions) => void; refresh: (params?: P, pathParams?: Record, fetchOptions?: DoFetchOptions) => Promise<(T & IExternalData) | undefined>; }; export declare function useFetch

(url: string, params?: P, options?: FetchOptions | null, handler?: FetchHandler): useFetchReturn; export declare function usePost

(url: string, options?: FetchOptions | null, handler?: FetchHandler): [ (data: P, pathParams?: Record, fetchOptions?: DoFetchOptions) => Promise<(T & IExternalData) | undefined>, { loading: boolean; data: (T & IExternalData) | undefined; error: Error | null; } ]; export declare function useLazyFetch

(url: string, params?: P, options?: FetchOptions, handler?: FetchHandler): [ (params?: P, pathParams?: Record, fetchOptions?: DoFetchOptions) => Promise<(T & IExternalData) | undefined>, useFetchReturn ];