import yup from 'yup'; import { HttpError } from 'http-errors'; declare class ApplicationError extends Error { name: TName; details: TDetails; message: TMessage; constructor(message?: TMessage, details?: TDetails); } declare class ValidationError extends ApplicationError<'ValidationError', TMessage, TDetails> { constructor(message: TMessage, details?: TDetails); } interface YupFormattedError { path: string[]; message: string; name: string; value: string; } declare class YupValidationError extends ValidationError { constructor(yupError: yup.ValidationError, message?: TMessage); } declare class PaginationError extends ApplicationError<'PaginationError', TMessage, TDetails> { constructor(message?: TMessage, details?: TDetails); } declare class NotFoundError extends ApplicationError<'NotFoundError', TMessage, TDetails> { constructor(message?: TMessage, details?: TDetails); } declare class ForbiddenError extends ApplicationError { constructor(message?: TMessage, details?: TDetails); } declare class UnauthorizedError extends ApplicationError<'UnauthorizedError', TMessage, TDetails> { constructor(message?: TMessage, details?: TDetails); } declare class RateLimitError extends ApplicationError<'RateLimitError', TMessage, TDetails> { constructor(message?: TMessage, details?: TDetails); } declare class PayloadTooLargeError extends ApplicationError<'PayloadTooLargeError', TMessage, TDetails> { constructor(message?: TMessage, details?: TDetails); } declare class PolicyError extends ForbiddenError<'PolicyError', TMessage, TDetails> { constructor(message?: TMessage, details?: TDetails); } declare class NotImplementedError extends ApplicationError<'NotImplementedError', TMessage, TDetails> { constructor(message?: TMessage, details?: TDetails); } export { HttpError, ApplicationError, ValidationError, YupValidationError, PaginationError, NotFoundError, ForbiddenError, UnauthorizedError, RateLimitError, PayloadTooLargeError, PolicyError, NotImplementedError, }; //# sourceMappingURL=errors.d.ts.map