import { ErrorOptions } from 'topkat-utils'; export type ErrorObject = Record; /** Throws an error with contextual informations (ctx, custom infos...). Eg: throw error.serverError() */ export declare const error: ThrowErrorTypeSafe; export declare const errorWithCtx: GreenDotErrors; /** This is to register new errors and custom errors and make them available in the project */ export declare function registerErrors(errObj: T, withCustomMsgParam?: boolean): T; declare const coreErrors: { readonly 404: { readonly code: 404; readonly message: "notFound"; }; readonly 403: { readonly code: 403; readonly message: "userDoNotHaveThePermission"; }; readonly 422: { readonly code: 422; readonly message: "wrongParams"; }; readonly 401: { readonly code: 401; readonly message: "accessDenied"; }; readonly 409: { readonly code: 401; readonly message: "conflict"; }; readonly 429: { readonly code: 429; readonly message: "tooManyRequests"; }; readonly ressourceDoesNotExists: { readonly code: 404; }; readonly accessDenied: { readonly code: 403; }; readonly duplicateRessource: { readonly code: 409; }; readonly methodForbiddenForModel: { readonly code: 403; }; readonly _idFieldMustBeSetWhenBatchUpdate: { readonly code: 422; }; readonly requiredFieldsNotSet: { readonly code: 422; }; readonly requiredVariableEmptyOrNotSet: { readonly code: 422; }; readonly requiredVariableEmpty: { readonly code: 422; }; readonly wrongTypeForVar: { readonly code: 422; }; readonly wrongValueForParam: { readonly code: 422; }; readonly modelDoNotExist: { readonly code: 422; }; readonly functionDoNotExistInModel: { readonly code: 422; }; readonly scheduleError: { readonly code: 500; }; readonly sendEmailError: { readonly code: 500; }; readonly unauthorizedMethod: { readonly code: 403; }; readonly tooManyRequests: { readonly code: 429; }; readonly actionHasBeenRejectedByHasAccessHook: { readonly code: 403; }; readonly authenticationFailed: { readonly code: 401; }; readonly wrongPassword: { readonly code: 401; }; readonly wrongToken: { readonly code: 401; }; readonly userLocked: { readonly code: 401; }; readonly noAccessToken: { readonly code: 401; }; readonly userDoNotHaveThePermission: { readonly code: 403; }; readonly tokenExpired: { readonly code: 401; }; readonly filterWithMongoOperatorsNotAllowed: { readonly code: 422; }; readonly secureAuthenticationRequired: { readonly code: 403; }; }; declare const serverErrors: { readonly serverError: { readonly code: 500; }; readonly applicationError: { readonly code: 422; }; readonly 500: { readonly code: 500; }; }; export type RegisterErrorType> = Record void>; type CoreErrors = RegisterErrorType; type CoreErrorWithCustomMessage = Record void>; export type ThrowErrorTypeSafe = { [K in keyof GreenDotErrors]: (...params: RemoveFirstElementFromTuple>) => void; }; declare global { interface GreenDotErrors extends CoreErrors { } interface GreenDotErrors extends CoreErrorWithCustomMessage { } } export {};