interface IRequestCreateConfig { baseURL?: string; token?: () => string; } interface IRequestConfig { url: string; method: 'GET' | 'POST'; header?: Record; data?: string | Record | ArrayBuffer; params?: Record; timeout?: number; meta?: { ignoreToken: boolean }; shareRequest?: boolean; notTransform?: boolean; transform?: ({ data, header }: { data: T, header: Record }) => R; } type IRequestData = { code: number; msg: string; total?: number; rows?: any[]; data: T; success?: boolean; warn?: boolean; error?: boolean; }; interface IUploadConfig { url?: string; header?: Record; data?: Record; params: { file: string; name: string; }; timeout?: number; meta?: { ignoreToken: boolean }; transform?: ({ data, header }: { data: T, header: Record }) => R; }