declare global {
    namespace Api {
        /**
         * Опции клиента API
         *
         * Опции применяются для всех запросов
         */
        interface ClientOptions extends BaseOptions, RequestInit {
            /**
             * Расширенные настройки выполнения запроса по умолчанию для всех запросов API клиента
             */
            requestOptions: Partial<Api.ClientRequestOptions>;
            /**
             * Хук, для модификации параметров запроса
             *
             * Данные `data` безопасно меняются по ссылке
             *
             * Используется перед созданием объекта запроса `Request`
             *
             * Является более оптимальным решением, чем пересоздание запроса через middleware `onRequest()`
             */
            onPrepareData?: (data: Record<string, any>, options: Omit<Api.MiddlewareCallbackParams, 'request'>) => void;
            /**
             * Выводить ли информацию о перехваченных ошибках API с помощью `console`
             *
             * Только при использовании `useExt`
             *
             * @see console
             */
            useApiConsole?: boolean;
        }
        type BaseOptions = {
            /**
             * Базовый URL для всех API-запросов
             */
            baseUrl?: string;
            /**
             * Глобальный сериализатор query-параметров
             */
            querySerializer: (input: Record<string, any>) => Promise<string> | string;
            /**
             * Глобальный сериализатор тела запроса
             */
            bodySerializer: (input: Record<string, any>) => string;
            /**
             * Пользовательский реализация `Request`
             *
             * @see Request
             */
            Request: typeof Request;
            /**
             * Пользовательская реализация `fetch`
             *
             * @see fetch
             */
            fetch: (input: RequestInfo, init?: RequestInit) => Promise<globalThis.Response>;
        };
    }
}
export {};
