import { FetchBaseQueryArgs, RequestDefinition } from '../types/api.interface'; import { QueryOptions, QueryResult } from '../types/query.interface'; /** * Собирает абсолютный URL запроса из `path` и `baseUrl`. * * Важно: сохраняется поведение конкатенации (`baseUrl + path`), а не * резолвинг через `new URL(path, baseUrl)`. Резолвинг отбросил бы префикс * базы для абсолютных путей (например, `new URL('/api/x', 'http://host/_api')` * даёт `http://host/api/x`, теряя `/_api`), что сломало бы проксирование. * * Покрываемые кейсы: * - абсолютный `path` (`http(s)://...`) → используется как есть; * - относительный `path` + абсолютный `baseUrl` → конкатенация даёт абсолютный URL; * - относительный `path` + относительный `baseUrl` (браузер, напр. `/_api`) → * результат резолвится относительно `window.location.origin`, чтобы * `new URL(...)` не падал с `Invalid URL` (same-origin сохраняется). * * @param path Путь запроса * @param baseUrl Базовый URL клиента (может быть абсолютным или относительным) * @returns Готовый объект URL */ export declare function buildRequestUrl(path: string, baseUrl: string): URL; /** * Создает базовый fetch-клиент для запросов с поддержкой файлов * @param options Настройки базового клиента * @returns Функция для выполнения запросов */ export declare function fetchBaseQuery(options: Omit): , E extends Error = Error>(args: RequestDefinition, queryOptions: QueryOptions | undefined, headers: Headers) => Promise>;