import { FSDBEntity } from '@becomes/purple-cheetah-mod-fsdb/types'; import { JWT, JWTRole, JWTRoleName } from '@becomes/purple-cheetah-mod-jwt/types'; import type { ObjectSchema } from '@becomes/purple-cheetah/types'; import { UserAdmin } from './admin'; import { UserOrg } from './org'; import { UserPersonal } from './personal'; import { UserQuestions } from './questions'; export interface UserJwtProps { email: string; personal: UserPersonal; orgs: UserOrg[]; instances: Array<{ iid: string; ine: string; oi: string; one: string; r: JWTRoleName; }>; admin?: UserAdmin; setupDone: boolean; } export type UserJwt = JWT; export type UserSignUpType = 'email' | 'github' | 'google'; export interface User extends FSDBEntity { email: string; password: string; roles: JWTRole[]; personal: UserPersonal; orgs: UserOrg[]; verified: boolean; admin?: UserAdmin; signUpType: UserSignUpType; oauthId?: string; suspended?: boolean; suspendedMessage?: string; setupDone: boolean; questions?: UserQuestions; } export type UserProtected = Omit; export declare const UserSchema: ObjectSchema;