import { ErrorHandler, RawRequest } from "./types";
import { ErrorObject } from 'ajv';
export declare abstract class ApiError extends Error {
    readonly request: RawRequest;
    protected constructor(request: RawRequest, message?: string);
}
export declare class BadRequestError extends ApiError {
    readonly errors: ErrorObject[];
    constructor(request: RawRequest, errors: ErrorObject[]);
}
export declare class NotFoundError extends ApiError {
    constructor(request: RawRequest);
}
export declare class NotImplementedError extends ApiError {
    constructor(request: RawRequest);
}
export declare class UnauthorizedError extends ApiError {
    readonly errors: Error[];
    constructor(request: RawRequest, errors: Error[]);
}
export declare class HttpError<Data extends Record<string, any> = any> extends Error {
    readonly statusCode: number;
    readonly data?: Data | undefined;
    constructor(message: string, statusCode: number, data?: Data | undefined);
}
export declare const defaultErrorHandler: ErrorHandler<any>;
//# sourceMappingURL=errors.d.ts.map