/** * Shared errors for API / core (Node). Uses request locale + catalogs. */ import { tl } from './i18n/request-locale.js'; import { ErrorCodes, type ErrorCode } from './errors-codes.js'; export { ErrorCodes, type ErrorCode }; export type YskErrorOptions = { details?: unknown; httpStatus?: number; cause?: unknown; /** i18n key (e.g. errors.auth.badCredentials); message may be re-translated */ messageKey?: string; messageParams?: Record; /** Locale used when constructing message (defaults to request locale) */ locale?: string; }; export declare class YskError extends Error { readonly code: ErrorCode; readonly details?: unknown; readonly httpStatus: number; readonly messageKey?: string; readonly messageParams?: Record; constructor(code: ErrorCode, message: string, options?: YskErrorOptions); /** Localized message for the given (or current) locale. */ localize(locale?: string | null): string; } /** * Build a YskError with catalog message. * Default key: `errors.` unless messageKey provided. */ export declare function yskError(code: ErrorCode, options?: YskErrorOptions & { /** Override default errors. */ messageKey?: string; }): YskError; /** Convenience: validation error with custom key under errors.* */ export declare function yskValidation(messageKey: string, options?: Omit & { messageParams?: Record; }): YskError; /** Re-export tl for callers that only need a localized string without throwing. */ export { tl }; //# sourceMappingURL=errors.d.ts.map