import { QueryFilter, QuerySort } from '../interfaces'; import { IRole } from '../roles/interfaces'; export declare enum UserManagedByEnum { FRONTEGG = "frontegg", SCIM2 = "scim2" } export type ITeamUserTenant = { tenantId: string; roles: IRole[]; }; export type ITeamUser = { id: string; email: string; name: string; phone?: string; username?: string; profileImage?: string; profileImageUrl?: string; tenantId: string; vendorId: string; roleIds: string[]; roles: IRole[]; activatedForTenant: boolean; createdAt: string; customData?: any; lastLogin?: string; mfaEnabled?: boolean; tenants?: ITeamUserTenant; verified?: boolean; managedBy?: UserManagedByEnum; temporaryExpirationDate?: Date; isDisabled?: boolean; }; export type ITeamUserRole = { vendorId?: string; tenantId?: string | null; id: string; description: string; key: string; name: string; permissions?: string[]; permissionLevel?: number; }; export type ITeamUserPermission = { description: string; fePermission: boolean; id: string; key: string; name: string; roleIds: string[]; createdAt: Date; updatedAt: Date; categoryId: string; }; export interface ISamlRolesGroup { id: string; group: string; roleIds: string[]; } export type ITeamStats = { totalItems: number; addedThisWeek: number; superAdmins: number; }; export type IUpdateProfile = { title: 'Mr' | 'Miss' | 'Mrs' | 'Ms'; name: string; country: string; phoneNumber: string; dateOfBirth: number; profilePicture: string; }; export type IUpdateProfileImage = { profileImage: string; }; export type IChangePassword = { password: string; newPassword: string; }; export type ILoadUsers = { silentLoading?: boolean; filter?: QueryFilter[]; sort?: QuerySort[]; pageOffset: number; pageSize?: number; }; export type IAddUser = { name?: string; email: string; phone?: string; roleIds: string[]; expirationInSeconds?: number; username?: string; }; export type IDeleteUser = { userId: string; }; export type IUpdateUser = Partial; export type IResendActivationLink = { userId: string; }; export type IResendInvitationLink = { email: string; }; export type ISendResetPasswordLink = { userId: string; }; export type ICreateOrUpdateInviteUserLink = { expiresInMinutes?: number; shouldSendEmail?: boolean; roleIds?: string[]; }; /** * invite config */ export type IInviteUserLinkResponse = { id: string; vendorId: string; tenantId: string; userId?: string; token: string; expires: Date; shouldSendEmail?: boolean; roleIds?: string[]; }; /** * vendor config */ export type IInviteLinkConfiguration = { tenantInvitationsAllowed: boolean; emailsEnabled: boolean; }; /** * user expiration config */ export type IUpdateUserExpiration = { userId: string; expirationInSeconds: number; }; /** * vendor config */ export type ITemporaryUserConfiguration = { enabled: boolean; };