import Config from './config.js'; import Logger from './logger.js'; import { createRequestClient } from '../utils/request_client.js'; import ServiceInterface from './interface.js'; interface RequestParams { url?: string; uri?: string; headers?: Record; [key: string]: unknown; } interface RequestDump { method: string; uri?: { protocol: string; href: string; } | null; headers: Record; req?: object; _json?: boolean; formData?: Record | null; body?: unknown; form?: (data: unknown) => { body: unknown; }; } interface ResponseDump { statusCode: number; statusMessage: string; headers: Record; body: unknown; } declare class HttpClient extends ServiceInterface { config: object; client: ReturnType; static dependencies: (typeof Config | typeof Logger)[]; constructor(config: Config, logger: Logger); getProto(): (params?: { url?: string; method?: string; headers?: Record; body?: unknown; json?: unknown; qs?: Record | string; form?: Record; formData?: Record; simple?: boolean; resolveWithFullResponse?: boolean; timeout?: number; }) => Promise; getInstance(): (params?: { url?: string; method?: string; headers?: Record; body?: unknown; json?: unknown; qs?: Record | string; form?: Record; formData?: Record; simple?: boolean; resolveWithFullResponse?: boolean; timeout?: number; }) => Promise; request(params: RequestParams): Promise; dumpRequest(req: RequestDump, asString?: boolean): object | string; dumpResponse(res: ResponseDump, asString?: boolean): object | string; } export default HttpClient;