import { DBDocument, Paginated, Timestamp } from "@corejam/base/dist/typings/Utils";
export declare enum roles {
  ADMIN = "admin",
  USER = "user"
}
export declare enum STATUS {
  PENDING = "PENDING",
  VERIFIED = "VERIFIED"
}
export declare type User = Timestamp & {
  email: string;
  password?: string;
  status: STATUS;
  verifyHash?: string;
  active: boolean;
  role: [roles];
  refreshToken?: string;
  authReset?: AuthReset;
  dateCreated: string;
  dateUpdated: string;
};
export declare type UserDB = User & DBDocument;
export declare type UserInput = Partial<User>;
export declare type AuthReset = {
  expires: string;
  hash: string;
};
export declare type UserCreateInput = {
  email: string;
  password?: string;
  active: boolean;
};
export declare type JWTPayload = {
  role: [string];
  id: string;
};
export declare type JWT = {
  user: UserDB;
  token: string;
  refreshToken: string;
};
export declare type UserList = Paginated & {
  totalItems: number;
  perPage: number;
  currentPage: number;
  lastPage: number;
  items?: UserDB[] | [];
};
export declare type RegisterInput = {
  email: string;
  password: string;
  passwordConfirm: string;
};
export declare type UpdateUserInput = {
  email: string;
};
export declare type UpdatePasswordInput = {
  oldPassword: string;
  password: string;
  passwordConfirm: string;
};
