import type { HttpMethodDecider } from '@modern-js/types'; export type BFFRequestPayload = { params?: Record; query?: Record; body?: string; formUrlencoded?: never; formData?: FormData; data?: Record; headers?: Record; cookies?: Record; files?: Record; }; export type Sender = ((...args: any[]) => Promise) & { fetch?: F; }; export type RequestOptions = { path: string; method: string; port: number; httpMethodDecider?: HttpMethodDecider; domain?: string; fetch?: F; requestId?: string; }; export type RequestCreator = (options: RequestOptions) => Sender; export type UploadOptions = { path: string; domain?: string; requestId?: string; }; export type UploadCreator = (options: UploadOptions) => Sender; export type IOptions = { request?: F; interceptor?: (request: F) => F; allowedHeaders?: string[]; setDomain?: (ops?: { target: 'server' | 'browser'; }) => string; requestId?: string; };