import type { EventHandler, EventHandlerRequest, EventHandlerResponse, H3Event } from 'h3'; import type { CachedEventHandlerOptions } from 'nitropack/types'; import { httpStatuses } from '#cms/http-statuses'; import { H3Error } from 'h3'; export type HttpStatusKey = keyof typeof httpStatuses; export interface HttpStatus { code: number; message: string; } type HttpStatusesCodesMap = Record; export type HttpErrorOptions = Partial>; interface DefineHttpHandlerOptions { httpCodesMap?: HttpStatusesCodesMap; cache?: CachedEventHandlerOptions; access?: 'admin' | 'employee' | 'user'; } export declare class HttpError extends Error { readonly httpStatusKey: HttpStatusKey; readonly options?: HttpErrorOptions | undefined; constructor(httpStatusKey: HttpStatusKey, options?: HttpErrorOptions | undefined); } /** * Разрешает и форматирует ошибку для HTTP ответов сервера. * Логирует ошибку и возвращает отформатированную H3Error с кодом статуса и сообщением. * * @param event - Объект события. * @param error - Ошибка для разрешения. * @param httpCodesMap - Опциональное пользовательское сопоставление типов ошибок с ключами статусов. * @returns Отформатированная H3Error для ответа. */ export declare function errorServerResolver(event: H3Event, error: unknown, httpCodesMap?: HttpStatusesCodesMap): Promise>; /** * Создает новый экземпляр HttpError с заданным ключом статуса и опциями. * * @param errorStatusKey - Ключ, представляющий HTTP статус. * @param options - Дополнительные опции ошибки (cause, fatal). * @returns Созданный экземпляр HttpError. */ export declare function createHttpError(errorStatusKey: HttpStatusKey, options?: HttpErrorOptions): HttpError; /** * Определяет HTTP обработчик, который оборачивает предоставленный обработчик и обрабатывает ошибки. * Перехватывает и форматирует ошибки для HTTP ответов, включая ошибки валидации и базы данных. * * @typeParam Request - Тип объекта запроса. * @typeParam Response - Тип объекта ответа. * @param handler - Основная функция обработчика. * @param options - Опциональное пользовательское сопоставление типов ошибок с ключами статусов. * @param options.httpCodesMap - Опциональное пользовательское сопоставление типов ошибок с ключами статусов. * @returns Обернутый обработчик событий с обработкой ошибок. */ export declare function defineHttpHandler(handler: EventHandler>, options?: DefineHttpHandlerOptions): EventHandler>; export {};