import type { ErrorMeta } from './types.js'; import type RepoTherapy from './repo-therapy.js'; import type { ErrorCode } from '../generated/types/errors.js'; type CodeMultiple = `${string}_multiple` | 'multiple'; type AddFn = Code extends CodeMultiple ? (error: Error) => void : never; export declare enum ErrorStatusCode { BadRequest = 400, UnauthorizedMeta = 401, PaymentRequired = 402, Forbidden = 403, NotFound = 404, MethodNotAllowed = 405, NotAcceptable = 406, ProxyAuthenticationRequired = 407, RequestTimeout = 408, Conflict = 409, Gone = 410, LengthRequired = 411, PreconditionFailed = 412, ContentTooLarge = 413, URITooLong = 414, UnsupportedMediaType = 415, RangeNotSatisfiable = 416, ExpectationFailed = 417, ImATeapot = 418, MisdirectedRequest = 421, UnprocessableContent = 422, ErrorLocked = 423, FailedDependency = 424, TooEarly = 425, UpgradeRequired = 426, PreconditionRequired = 428, TooManyRequests = 429, RequestHeaderFieldsTooLarge = 431, UnavailableForLegalReasons = 451, InternalServerError = 500, NotImplemented = 501, BadGateway = 502, ServiceUnavailable = 503, GatewayTimeout = 504, HTTPVersionNotSupported = 505, VariantAlsoNegotiates = 506, InsufficientStorage = 507, LoopDetected = 508, NotExtended = 510, NetworkAuthenticationRequired = 511 } type ErrorInput = { fields?: (string | number | undefined)[]; path?: string[]; message?: string; } & (Error | {}); export default class RTDocumentedError extends Error { readonly code: Meta['code']; readonly statusCode: number; readonly internalStatusCode: number; readonly fullStatusCode: number; readonly fields: (string | number | undefined)[]; path: (string | number)[]; get isMultiple(): boolean; readonly details: Meta['code'] extends CodeMultiple ? { code: string; fullStatusCode: number; statusCode: number; internalStatusCode: number; fields?: (string | number | undefined)[]; path?: (string | number)[]; }[] : never; constructor(meta: Meta, input?: ErrorInput, fn?: Function); private _push; protected _hide(key: Key, value: this[Key] | never[]): never[] | this[Key]; protected _parseMessage(message: string): string; push: AddFn; pushPath(...args: (string | number)[]): void; json(): { code: string; statusCode: number; internalStatusCode: number; fields?: string[]; path?: string[]; } & (Meta["code"] extends infer T ? T extends Meta["code"] ? T extends CodeMultiple ? { details: { code: string; statusCode: number; internalStatusCode: number; fields?: string[]; path?: string[]; }[]; } : {} : never : never); reanchorStack(fn: Function): void; static loader(repoTherapy: RepoTherapy): Promise(code: T, input?: ErrorInput, fn?: Function) => RTDocumentedError>; static generateTypeDefinition(repoTherapy: RepoTherapy): Promise; } export {}; //# sourceMappingURL=error.d.ts.map