import { HttpStatusCodes } from "../httpStatusCodes.js";
import { ErrorCodes } from "./errorCodes.js";
import { StrictModeLocaleMap } from "express-intlayer";

//#region src/utils/errors/ErrorsClass.d.ts

/**
 * Custom error class that extends the native JavaScript Error class.
 * This class supports multilingual error messages and HTTP status codes.
 */
declare class AppError extends Error {
  isAppError: boolean;
  name: string;
  isMultilingual: boolean;
  errorKey: string;
  title: string;
  multilingualTitle: StrictModeLocaleMap<string>;
  message: string;
  multilingualMessage: StrictModeLocaleMap<string>;
  httpStatusCode: HttpStatusCodes;
  messageDetails?: object;
  /**
   * Constructor for the custom error class.
   * @param multilingualMessage - The error message which can be a simple string or a multilingual object.
   * @param httpStatusCode - Optional HTTP status code, defaults to 500 Internal Server Error.
   */
  constructor(multilingualTitle: StrictModeLocaleMap<string>, multilingualMessage: StrictModeLocaleMap<string>, errorKey: string, httpStatusCode?: HttpStatusCodes, messageDetails?: object);
}
declare class GenericError extends AppError {
  constructor(errorKey: ErrorCodes, messageDetails?: object);
}
//#endregion
export { AppError, GenericError };
//# sourceMappingURL=ErrorsClass.d.ts.map