export declare enum ExternalIdentityProviderType { keycloak = "keycloak" } export declare enum IdentityProviderUserPermission { manage_users = "manage_users", manage_settings = "manage_settings" } export interface IdentityProviderUser { id: number | string; username?: string; email?: string; firstName?: string; lastName?: string; roleIds?: (number | string)[]; passwordHash?: string; avatarUrl?: string; temporaryPassword?: boolean; passwordResetToken?: string; twoFactorSecret?: string; lastLoginAt?: Date | string; jwtTokenCheck?: string; settings?: Record; createdAt?: Date | string; updatedAt?: Date | string; } export interface IdentityProviderUserWithRoles extends IdentityProviderUser { roles: IdentityProviderRole[]; } export interface ClientIdentityProviderUser extends Omit { } export interface ClientIdentityProviderUserWithRoles extends ClientIdentityProviderUser { roles: IdentityProviderRole[]; } export interface IdentityProviderRole { id: number | string; name: string; permissions?: (keyof typeof IdentityProviderUserPermission)[]; createdAt?: Date | string; updatedAt?: Date | string; } export interface ClientIdentityProviderRole extends IdentityProviderRole { } export interface IdentityProviderLoginAttempt { id: number | string; ipAddress: string; identifier: string; userId?: number | string; success: boolean; failureReason?: string; userAgent?: string; attemptedAt: Date | string; } /** @deprecated */ export interface User { id: number; username?: string; email?: string; firstName?: string; avatarUrl?: string; roles: { id: string; name: string; }[]; /** * @deprecated Use `roles` instead */ role?: { id: string; name: string; }; } /** @deprecated */ export interface JWTTokenPayload { stage: 'production' | 'development'; appId: string; userId: string; userEmail: string; }