import { RenameId } from "../utils/mongoDB/types.js";
import { Document, Model, ObjectIdToString, Types } from "mongoose";
import { OmitId, User as User$1 } from "better-auth";

//#region src/types/user.types.d.ts
interface UserData {
  email: string;
  name: string;
  phone?: string;
  dateOfBirth?: Date;
}
declare enum EmailsList {
  NEWS_LETTER = "newsLetter"
}
type User = OmitId<UserData & User$1> & {
  id: Types.ObjectId;
  emailsList?: { [key in EmailsList]: boolean };
  customerId?: string;
  role?: string;
  lastLoginMethod?: 'email' | 'google' | 'github' | 'passkey';
  lang?: string;
  createdAt: Date;
  updatedAt: Date;
};
type UserAPI = ObjectIdToString<Omit<User, 'provider' | 'session'>>;
type UserSchema = RenameId<User>;
type UserModelType = Model<User>;
type UserDocument = Document<unknown, {}, User> & User;
//#endregion
export { EmailsList, User, UserAPI, UserData, UserDocument, UserModelType, UserSchema };
//# sourceMappingURL=user.types.d.ts.map