import { EUserRoles } from "../../middleware/index.js"; import { EImageVariant, IPaginatedBase } from "../content/index.js"; import { ESupportedLanguages } from "../translation/index.js"; export declare enum EUserInviteStatus { INVITE = "invite", PENDING = "pending", COMPLETE = "complete" } export declare enum EUserImportStatus { PENDING = "pending", COMPLETED = "completed", ERROR = "error" } export type TUserUrl = { url: string; }; export type TAvatarImage = { id: string | null; url: string | null; variant: EImageVariant.AVATAR; }; export type TPartialUser = { id: string; firstName: string; lastName: string; avatar: TAvatarImage; position: string; department: string; }; export type TCommunicationSettings = { email: { enabled: boolean; }; push: { enabled: boolean; token: string | null; }; sms: { enabled: boolean; }; }; export type TEmailVerify = { verified: boolean; pin: string | null; }; export interface IUserDefaultGroups { startDate: string; department: string; division: string; region: string; position: string; mobileNumber: string; workPhoneNumber: string; gender: string; country: string; city: string; dateOfBirth: string; language: ESupportedLanguages; } export interface IUserAttrs { _id: string; tenant: string; firstName: string; lastName: string; avatar: TAvatarImage; role?: EUserRoles; email?: string; employeeId: string; communication?: TCommunicationSettings; import: { importId: string; importStatus?: EUserImportStatus; error?: { identity: boolean; grouping: boolean; }; skipped?: string[]; }; invite?: { tempPassword: string | null; status: EUserInviteStatus; by: string | null; date: number; }; support?: { id: string | null; }; defaultGroups: IUserDefaultGroups; socialFilter?: string[]; version?: number; } export interface IUserPaginateResult extends IPaginatedBase { docs: Partial[]; } export interface IUser { id: string; tenant: string; firstName: string; lastName: string; avatar: TAvatarImage; version: number; role: EUserRoles; enabled: boolean; emailVerified: TEmailVerify; email?: string; communication: TCommunicationSettings; import: { importStatus: EUserImportStatus; importId: string; error: { identity: boolean; grouping: boolean; }; skipped: string[]; }; invite: { tempPassword: string | null; status: EUserInviteStatus; by: string | null; date: number; }; support: { id: string | null; }; employeeId: string; defaultGroups: IUserDefaultGroups; editing: string | null | Partial; socialFilter: string[]; } export interface IUserImport { employeeId: string; firstName: string; lastName: string; email?: string; startDate: string; department: string; division: string; position: string; region: string; mobileNumber: string; workPhoneNumber: string; dateOfBirth: string; gender: string; country: string; city: string; language: ESupportedLanguages; } //# sourceMappingURL=interfaces.d.ts.map