import { EBindKey, EExchangeNames, EExchangeTypes, IMessageEvent, TEventBaseData } from "../events/index.js"; import { PartialImportRealmRepresentation, PartialImportResponse } from "@keycloak/keycloak-admin-client/lib/defs/realmRepresentation.js"; import UserRepresentation from "@keycloak/keycloak-admin-client/lib/defs/userRepresentation.js"; import { EKeycloakImportStrategy } from "../keycloak/index.js"; import { IUser, IUserAttrs } from "./user/index.js"; import { RequiredActionAlias } from "@keycloak/keycloak-admin-client/lib/defs/requiredActionProviderRepresentation.js"; import { ESupportedLanguages } from "./translation/index.js"; import { TSendInviteData } from "./communication-events.js"; import { TTenantLogo } from "./tenant/index.js"; export interface ICreateUserViewEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_CREATE; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_CREATE; data?: TUserMessageData; } export interface IEditUserViewEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_EDIT; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_EDIT; data?: TUserMessageData; } export type TSingleGroupingCreate = { user: IUser; multi: false; }; export type TMultiGroupingCreate = { user: IUserAttrs[]; multi: true; }; export type TCreateUserGroupingMessageData = { total: number; lng: ESupportedLanguages; importer: string; importId: string; } & (TSingleGroupingCreate | TMultiGroupingCreate) & TEventBaseData; export interface ICreateUserGroupingEvent extends IMessageEvent { exchangeName: EExchangeNames.CREATE_USER_GROUPING; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.CREATE_USER_GROUPING; data?: TCreateUserGroupingMessageData; } export type TEditUserGroupingMessageData = { importer: string; lng: ESupportedLanguages; previousVersion: IUser; } & TSingleGroupingCreate & TEventBaseData; export interface IEditUserGroupingEvent extends IMessageEvent { exchangeName: EExchangeNames.EDIT_USER_GROUPING; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.EDIT_USER_GROUPING; data?: TEditUserGroupingMessageData; } export interface IDeleteUserEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_DELETE; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_DELETE; data?: TUserMessageData; } export type TCreateMultiUserMessage = { multi: true; total: number; user: IUserAttrs[]; importId: string; }; export type TCreateSingleUserMessage = { multi: false; user: IUser; }; export type TUserMessageData = { strategy: EKeycloakImportStrategy; } & (TCreateMultiUserMessage | TCreateSingleUserMessage) & TEventBaseData; export type TUserCredentials = { username: string; password: string; }; export type TSingleUserImport = { multi: false; requiredActions: RequiredActionAlias[]; user: Pick; tempPassword: string; }; export type TMultiUserImport = { multi: true; users: PartialImportRealmRepresentation; }; export type TUserImportData = { lng: ESupportedLanguages; importer: string; importId: string; userCredentials: TUserCredentials; } & (TSingleUserImport | TMultiUserImport) & TEventBaseData; export interface IUserImportEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_IMPORT; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_IMPORT; data?: TUserImportData; } export type TSingleUserGroupingFailed = { multi: false; user: string; }; export type TMultiUserGroupingFailed = { multi: true; user: string[]; }; export type TUserGroupingFailedData = { lng: ESupportedLanguages; importId: string; importer: string; } & (TSingleUserGroupingFailed | TMultiUserGroupingFailed) & TEventBaseData; export interface IUserGroupingFailedEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_GROUPING_FAILED; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_GROUPING_FAILED; data?: TUserGroupingFailedData; } export type TSingleUserGroupingStatus = { multi: false; user: string; }; export type TMultiUserGroupingStatus = { multi: true; user: string[]; }; export type TUserGroupingStatusData = { lng: ESupportedLanguages; importId: string | null; importer: string; } & (TSingleUserGroupingStatus | TMultiUserGroupingStatus) & TEventBaseData; export interface IUserGroupingStatusEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_GROUPING_STATUS; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_GROUPING_STATUS; data?: TUserGroupingStatusData; } export type TUserIdentityStatusData = { importer: string; importId: string | null; lng: ESupportedLanguages; importResult: PartialImportResponse; } & TEventBaseData; export interface IUserIdentityStatusEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_IDENTITY_STATUS; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_IDENTITY_STATUS; data?: TUserIdentityStatusData; } export type TUserIdentityFailedData = { importer: string; importId: string | null; lng: ESupportedLanguages; importResult: UserRepresentation[]; } & TEventBaseData; export interface IUserIdentityFailedEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_IDENTITY_FAILED; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_IDENTITY_FAILED; data?: TUserIdentityFailedData; } export type TUserSocialSubscribeData = { userId: string; remove: string[]; add: string[]; updated: string[]; documentVersion: number; } & TEventBaseData; export interface IUserSocialSubscribeEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_SUBSCRIBE; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_SUBSCRIBE; data?: TUserSocialSubscribeData; } export type TSendInviteUserEmailData = { email?: string; } & TSendInviteData; export interface ISendInviteUserEmailEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_INVITE_EMAIL; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_INVITE_EMAIL; data?: TSendInviteUserEmailData; } export type TSendPasswordResetUserEmailData = { email?: string; username: string; firstName: string; tenant: string; temporaryPassword: string; actionUrl: string | null; lng: ESupportedLanguages; logo: TTenantLogo; companyName: string; }; export interface ISendPasswordResetUserEmailEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_SEND_PASSWORD_RESET_EMAIL; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_SEND_PASSWORD_RESET_EMAIL; data?: TSendPasswordResetUserEmailData; } export type TSendInviteUserSmsData = { smsId: string; mobileNumber: string; } & TSendInviteData; export interface ISendInviteUserSmsEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_INVITE_SMS; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_INVITE_SMS; data?: TSendInviteUserSmsData; } export type TSendUserPasswordResetSmsData = { smsId: string; tenant: string; mobileNumber: string; username: string; temporaryPassword: string; actionUrl: string | null; lng: ESupportedLanguages; companyName: string; }; export interface ISendUserPasswordResetSmsEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_PASSWORD_RESET_SMS; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_PASSWORD_RESET_SMS; data?: TSendUserPasswordResetSmsData; } export type TUpdateUserPushTokenData = { tenant: string; userId: string; token: string; }; export interface IUpdateUserTokenEvent extends IMessageEvent { exchangeName: EExchangeNames.USER_PUSH_TOKEN_UPDATE; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.USER_PUSH_TOKEN_UPDATE; data?: TUpdateUserPushTokenData; } //# sourceMappingURL=user-events.d.ts.map