import type { OutgoingHttpHeaders } from 'node:http'; import type { RequestOptions } from 'node:https'; import type { AnyObject } from '../../types'; interface ReqOptions extends Omit { headers?: OutgoingHttpHeaders; } export interface ReqConfig { cookie?: string; headers?: OutgoingHttpHeaders; baseURL?: string; reqOptions?: ReqOptions | RequestOptions; } export declare function getRandomUA(keyword?: string): string; export declare class ReqBase { protected headers: OutgoingHttpHeaders; protected isBrowser: boolean; protected config: ReqConfig; constructor(config?: string | ReqConfig, headers?: OutgoingHttpHeaders); protected formatUrl(url: string | URL): URL; getConfig(): { cookie?: string; headers?: OutgoingHttpHeaders; baseURL?: string; reqOptions?: ReqOptions | RequestOptions; }; setConfig(cfg: ReqConfig): void; getHeaders(urlObject?: URL, headers?: OutgoingHttpHeaders): OutgoingHttpHeaders; setHeaders(headers: OutgoingHttpHeaders, type?: 'merge' | 'reset'): this; getCookie(isString?: true): string; getCookie(isString: false): Record; } export declare class ReqFetch extends ReqBase { static instance: ReqFetch; static getInstance(): ReqFetch; constructor(cookie?: string | (Omit & { reqOptions?: ReqOptions; }), headers?: OutgoingHttpHeaders); req(url: string | URL, parameters?: AnyObject, options?: ReqOptions, autoRedirect?: boolean): Promise; request(method: string, url: string | URL, parameters?: AnyObject, options?: ReqOptions): Promise<{ response: Response; buffer: ArrayBuffer; data: T; }>; get(url: string, parameters?: AnyObject, headers?: OutgoingHttpHeaders, options?: ReqOptions): Promise<{ response: Response; buffer: ArrayBuffer; data: T; }>; post(url: string, parameters: AnyObject, headers?: OutgoingHttpHeaders, options?: ReqOptions): Promise<{ response: Response; buffer: ArrayBuffer; data: T; }>; } export {};