import { RawError } from "../utils/error-codes.mjs";

//#region src/error/codes.d.ts
declare module "@better-auth/core" {
  interface BetterAuthPluginRegistry<AuthOptions, Options> {
    /**
     * This plugin does not exist, do not use it in runtime.
     */
    "$internal:base": {
      creator: () => {
        $ERROR_CODES: typeof BASE_ERROR_CODES;
      };
    };
  }
}
declare const BASE_ERROR_CODES: {
  USER_NOT_FOUND: RawError<"USER_NOT_FOUND">;
  FAILED_TO_CREATE_USER: RawError<"FAILED_TO_CREATE_USER">;
  FAILED_TO_CREATE_SESSION: RawError<"FAILED_TO_CREATE_SESSION">;
  FAILED_TO_UPDATE_USER: RawError<"FAILED_TO_UPDATE_USER">;
  FAILED_TO_GET_SESSION: RawError<"FAILED_TO_GET_SESSION">;
  INVALID_PASSWORD: RawError<"INVALID_PASSWORD">;
  INVALID_EMAIL: RawError<"INVALID_EMAIL">;
  INVALID_EMAIL_OR_PASSWORD: RawError<"INVALID_EMAIL_OR_PASSWORD">;
  INVALID_USER: RawError<"INVALID_USER">;
  SOCIAL_ACCOUNT_ALREADY_LINKED: RawError<"SOCIAL_ACCOUNT_ALREADY_LINKED">;
  PROVIDER_NOT_FOUND: RawError<"PROVIDER_NOT_FOUND">;
  INVALID_TOKEN: RawError<"INVALID_TOKEN">;
  TOKEN_EXPIRED: RawError<"TOKEN_EXPIRED">;
  ID_TOKEN_NOT_SUPPORTED: RawError<"ID_TOKEN_NOT_SUPPORTED">;
  FAILED_TO_GET_USER_INFO: RawError<"FAILED_TO_GET_USER_INFO">;
  USER_EMAIL_NOT_FOUND: RawError<"USER_EMAIL_NOT_FOUND">;
  EMAIL_NOT_VERIFIED: RawError<"EMAIL_NOT_VERIFIED">;
  PASSWORD_TOO_SHORT: RawError<"PASSWORD_TOO_SHORT">;
  PASSWORD_TOO_LONG: RawError<"PASSWORD_TOO_LONG">;
  USER_ALREADY_EXISTS: RawError<"USER_ALREADY_EXISTS">;
  USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL: RawError<"USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL">;
  EMAIL_CAN_NOT_BE_UPDATED: RawError<"EMAIL_CAN_NOT_BE_UPDATED">;
  CREDENTIAL_ACCOUNT_NOT_FOUND: RawError<"CREDENTIAL_ACCOUNT_NOT_FOUND">;
  ACCOUNT_NOT_FOUND: RawError<"ACCOUNT_NOT_FOUND">;
  SESSION_EXPIRED: RawError<"SESSION_EXPIRED">;
  FAILED_TO_UNLINK_LAST_ACCOUNT: RawError<"FAILED_TO_UNLINK_LAST_ACCOUNT">;
  USER_ALREADY_HAS_PASSWORD: RawError<"USER_ALREADY_HAS_PASSWORD">;
  CROSS_SITE_NAVIGATION_LOGIN_BLOCKED: RawError<"CROSS_SITE_NAVIGATION_LOGIN_BLOCKED">;
  VERIFICATION_EMAIL_NOT_ENABLED: RawError<"VERIFICATION_EMAIL_NOT_ENABLED">;
  EMAIL_ALREADY_VERIFIED: RawError<"EMAIL_ALREADY_VERIFIED">;
  EMAIL_MISMATCH: RawError<"EMAIL_MISMATCH">;
  SESSION_NOT_FRESH: RawError<"SESSION_NOT_FRESH">;
  LINKED_ACCOUNT_ALREADY_EXISTS: RawError<"LINKED_ACCOUNT_ALREADY_EXISTS">;
  INVALID_ORIGIN: RawError<"INVALID_ORIGIN">;
  INVALID_CALLBACK_URL: RawError<"INVALID_CALLBACK_URL">;
  INVALID_REDIRECT_URL: RawError<"INVALID_REDIRECT_URL">;
  INVALID_ERROR_CALLBACK_URL: RawError<"INVALID_ERROR_CALLBACK_URL">;
  INVALID_NEW_USER_CALLBACK_URL: RawError<"INVALID_NEW_USER_CALLBACK_URL">;
  MISSING_OR_NULL_ORIGIN: RawError<"MISSING_OR_NULL_ORIGIN">;
  CALLBACK_URL_REQUIRED: RawError<"CALLBACK_URL_REQUIRED">;
  FAILED_TO_CREATE_VERIFICATION: RawError<"FAILED_TO_CREATE_VERIFICATION">;
  FIELD_NOT_ALLOWED: RawError<"FIELD_NOT_ALLOWED">;
  ASYNC_VALIDATION_NOT_SUPPORTED: RawError<"ASYNC_VALIDATION_NOT_SUPPORTED">;
  VALIDATION_ERROR: RawError<"VALIDATION_ERROR">;
  MISSING_FIELD: RawError<"MISSING_FIELD">;
  METHOD_NOT_ALLOWED_DEFER_SESSION_REQUIRED: RawError<"METHOD_NOT_ALLOWED_DEFER_SESSION_REQUIRED">;
  BODY_MUST_BE_AN_OBJECT: RawError<"BODY_MUST_BE_AN_OBJECT">;
  PASSWORD_ALREADY_SET: RawError<"PASSWORD_ALREADY_SET">;
};
type APIErrorCode = keyof typeof BASE_ERROR_CODES;
//#endregion
export { APIErrorCode, BASE_ERROR_CODES };