import { PaginationOrderEnum } from '../interfaces'; import { ITenantsResponse } from '../tenants/interfaces'; import { IRole } from '../roles/interfaces'; import { ITeamUserPermission, UserManagedByEnum } from '../teams/interfaces'; import { IGroupResponse } from '../groups/interfaces'; import { UserEntitlementsContext as UserEntitlementsResponseV2 } from '@frontegg/entitlements-javascript-commons'; export declare enum SortByEnum { createdAt = "createdAt", name = "name", email = "email", id = "id", verified = "verified", isLocked = "isLocked", provider = "provider", tenantId = "tenantId" } export interface GetUserJwtRequestDto { tenantId: string; } export interface GetUserJwtResponseDto { accessToken: string; expires: string; expiresIn: number; } export interface IGetUserQueryParams { _limit?: number; _offset?: number; ids?: string; _sortBy?: SortByEnum; _order?: PaginationOrderEnum; } export interface ISearchUserQueryParamsV2 extends IGetUserQueryParams { _filter?: string; metadata?: string; _includeSubTenants?: boolean; } export interface ISearchUserQueryParamsV3 extends IGetUserQueryParams { _email?: string; _tenantId?: string; _includeSubTenants?: boolean; _preset?: GetUsersFilterPreset; _maxInactiveSeconds?: number; _identifier?: string; _identifierType?: string; _namePrefix?: string; } export interface IUserTenantData { tenantId: string; roles: IRole[]; } export interface IBaseUserData { id: string; email: string; name: string; /** * @deprecated * use profilePictureUrl instead */ profileImage?: string; profilePictureUrl?: string | null; } export interface IBaseGetUserResponse extends IBaseUserData { sub: string; verified: boolean; mfaEnrolled: boolean; mfaBypass?: boolean; phoneNumber?: string; provider?: string; tenantId: string; tenantIds: string[]; activatedForTenant?: boolean; isLocked?: boolean; tenants: IUserTenantData[]; managedBy?: UserManagedByEnum; invisible?: true; superUser?: true; metadata: string; createdAt?: Date; lastLogin?: Date; subAccountAccessAllowed?: boolean; temporaryExpirationDate?: Date; isDisabled?: boolean; entitlements?: UserEntitlementsResponseV2; } export type IUserProfile = IGetUsersV2Response; export interface IGetUsersV2Response extends IBaseGetUserResponse { roles: IRole[]; /** * @deprecated * use roles instead */ rolesIds?: string[]; permissions: ITeamUserPermission[]; groups?: Pick[]; } export interface IGetUserAuthorizationResponse { permissions: ITeamUserPermission[]; roles: IRole[]; } export type IUsersV3Data = IBaseGetUserResponse; export declare enum GetUsersFilterPreset { MFA_UNENROLLED = "mfa-unenrolled", BREACHED_PASSWORDS = "breached-passwords", INACTIVE = "inactive" } export interface GetUsersRolesParams { ids: string[]; } export interface GetUsersUsernamesParams { userIds: string[]; } export interface GetUsersEmailsV1Response { userId: string; email: string; } export interface GetUserRolesResponse { vendorId: string; tenantId: string; userId: string; roleIds: string[]; } export interface GetUserUsernamesResponse { vendorId: string; userId: string; username: string; } export interface GetUserGroupsParams { ids: string[]; } export interface GetUserGroupsResponse { vendorId: string; tenantId: string; userId: string; groupIds: string[]; } export interface GetCurrentUserTenantsResponse { tenants: ITenantsResponse[]; activeTenant: ITenantsResponse; } export interface IUpdateUserDto { userAgent: string; ipAddress: string; name?: string; phoneNumber?: string; profilePictureUrl?: string | null; metadata?: string; sourceMetadata?: SourceMetadata; provider?: typeof providersArray[number]; managedBy?: UserManagedByEnum; } export interface SourceMetadata { source: 'SCIM'; sourceVersion: number; sourceId: string; } export declare const providersArray: string[]; export interface IUnlockMeRequest { token: string; }