import { DomainEvent } from './domain-event'; export declare namespace externalEvents { abstract class ExternalEvent implements DomainEvent { readonly tag: string; readonly timestamp: number; readonly __discriminator__: 'domainEvent'; protected constructor(tag: string); } class AllFollowersRemoved extends ExternalEvent { static readonly tag = "all_followers_removed"; readonly roomId: string; constructor(roomId: string); static isAllFollowersRemoved(e: DomainEvent): e is AllFollowersRemoved; } class AssigneeChanged extends ExternalEvent { static readonly tag = "assignee_changed"; readonly adviserId: string; readonly roomId: string; readonly requesterId?: string; constructor(adviserId: string, roomId: string, requesterId?: string); static isAssigneeChanged(e: DomainEvent): e is AssigneeChanged; } class AssigneeRemoved extends ExternalEvent { static readonly tag = "assignee_removed"; readonly adviserId: string; readonly roomId: string; constructor(adviserId: string, roomId: string); static isAssigneeRemoved(e: DomainEvent): e is AssigneeRemoved; } class ConversationSnoozed extends ExternalEvent { static readonly tag = "conversation_snoozed"; readonly roomId: string; constructor(roomId: string); static isConversationSnoozed(e: DomainEvent): e is ConversationSnoozed; } enum ConversationStatus { Waiting = "waiting", InProgress = "inProgress", Solved = "solved", Unsolved = "unsolved" } class ConversationStatusChanged extends ExternalEvent { static readonly tag = "conversation_status_changed"; readonly roomId: string; readonly status: ConversationStatus; readonly adviserId?: string; constructor(roomId: string, status: ConversationStatus, adviserId?: string); static isConversationStatusChanged(e: DomainEvent): e is ConversationStatusChanged; } class ConversationUnsnoozed extends ExternalEvent { static readonly tag = "conversation_unsnoozed"; readonly roomId: string; constructor(roomId: string); static isConversationUnsnoozed(e: DomainEvent): e is ConversationUnsnoozed; } class FollowerAdded extends ExternalEvent { static readonly tag = "follower_added"; readonly adviserId: string; readonly roomId: string; readonly requesterId?: string; constructor(adviserId: string, roomId: string, requesterId?: string); static isFollowerAdded(e: DomainEvent): e is FollowerAdded; } class FollowerRemoved extends ExternalEvent { static readonly tag = "follower_removed"; readonly adviserId: string; readonly roomId: string; readonly requesterId?: string; constructor(adviserId: string, roomId: string, requesterId?: string); static isFollowerRemoved(e: DomainEvent): e is FollowerRemoved; } class BackOfficeField { readonly key: string; readonly value: string; readonly displayName?: string; constructor(key: string, value: string, displayName?: string); } class Phone { readonly region: string; readonly number: string; constructor(region: string, n: string); } class GuestProfileUpdated extends ExternalEvent { readonly backOfficeData: ReadonlyArray; readonly customerId: string; readonly locale: string; readonly timestamp: number; readonly roomId: string; readonly zoneId: string; readonly tags: ReadonlyArray; readonly topics: ReadonlyArray; readonly email?: string | undefined; readonly firstName?: string | undefined; readonly lastName?: string | undefined; readonly phone?: Phone | undefined; readonly tagGroupId?: string | undefined; static readonly tag = "guest_profile_updated"; constructor(backOfficeData: ReadonlyArray, customerId: string, locale: string, timestamp: number, roomId: string, zoneId: string, tags: ReadonlyArray, topics: ReadonlyArray, email?: string | undefined, firstName?: string | undefined, lastName?: string | undefined, phone?: Phone | undefined, tagGroupId?: string | undefined); static isGuestProfileUpdated(e: DomainEvent): e is GuestProfileUpdated; } class LastAdviserTimestampSet extends ExternalEvent { static readonly tag = "last_adviser_timestamp_set"; readonly roomId: string; readonly timestamp: number; constructor(roomId: string, timestamp: number); static isLastAdviserTimestampSet(e: DomainEvent): e is LastAdviserTimestampSet; } class LastAdviserTimestampRemoved extends ExternalEvent { static readonly tag = "last_adviser_timestamp_removed"; readonly roomId: string; constructor(roomId: string); static isLastAdviserTimestampRemoved(e: DomainEvent): e is LastAdviserTimestampRemoved; } class MeetingCancelled extends ExternalEvent { static readonly tag = "meeting_cancelled"; readonly adviserId: string; readonly duration: number; readonly meetingId: string; readonly roomId: string; readonly start: number; constructor(adviserId: string, duration: number, meetingId: string, roomId: string, start: number); static isMeetingCancelled(e: DomainEvent): e is MeetingCancelled; } class MeetingRescheduled extends ExternalEvent { static readonly tag = "meeting_rescheduled"; readonly adviserId: string; readonly duration: number; readonly meetingId: string; readonly roomId: string; readonly start: number; constructor(adviserId: string, duration: number, meetingId: string, roomId: string, start: number); static isMeetingRescheduled(e: DomainEvent): e is MeetingRescheduled; } class MeetingScheduled extends ExternalEvent { static readonly tag = "meeting_scheduled"; readonly adviserId: string; readonly duration: number; readonly meetingId: string; readonly roomId: string; readonly start: number; constructor(adviserId: string, duration: number, meetingId: string, roomId: string, start: number); static isMeetingScheduled(e: DomainEvent): e is MeetingScheduled; } class UpcomingMeeting { readonly duration: number; readonly guestId: string; readonly guestName: string; readonly langTag: string; readonly meetingId: string; readonly minutesToMeeting: number; readonly roomId: string; readonly start: number; constructor(duration: number, guestId: string, guestName: string, langTag: string, meetingId: string, minutesToMeeting: number, roomId: string, start: number); } class NotificationUpcomingMeeting extends ExternalEvent { static readonly tag = "notification_upcoming_meeting"; readonly notification: UpcomingMeeting; constructor(notification: UpcomingMeeting); static isNotificationUpcomingMeeting(e: DomainEvent): e is NotificationUpcomingMeeting; } enum Presence { Available = "available", Away = "away", Unavailable = "unavailable" } class PresenceUpdated extends ExternalEvent { static readonly tag = "presence_updated"; readonly presence: Presence; readonly timestamp: number; readonly userId: string; readonly reason?: string; constructor(presence: Presence, timestamp: number, userId: string, reason?: string); static isPresenceUpdated(e: DomainEvent): e is PresenceUpdated; } class TypingSent extends ExternalEvent { static readonly tag = "typing_sent"; readonly roomId: string; readonly timestamp: number; readonly userId: string; constructor(roomId: string, timestamp: number, userId: string); static isTypingSent(e: DomainEvent): e is TypingSent; } class UnreadCountUpdated extends ExternalEvent { static readonly tag = "unread_count_updated"; readonly roomId: string; readonly unreadCount: number; constructor(roomId: string, unreadCount: number); static isUnreadCountUpdated(e: DomainEvent): e is UnreadCountUpdated; } enum ConversationTab { Waiting = "waiting", Yours = "yours", Followed = "followed", InProgress = "inProgress", Closed = "closed" } class UnreadTotalUpdated extends ExternalEvent { readonly tab: ConversationTab; readonly unreadCount: number; readonly unreadCountNoTagGroup?: number | undefined; readonly unreadCountByTagGroup?: { readonly [tagGroupId: string]: number; } | undefined; static readonly tag = "unread_total_updated"; constructor(tab: ConversationTab, unreadCount: number, unreadCountNoTagGroup?: number | undefined, unreadCountByTagGroup?: { readonly [tagGroupId: string]: number; } | undefined); static isUnreadTotalUpdated(e: DomainEvent): e is UnreadTotalUpdated; } class UnassignedCountUpdated extends ExternalEvent { readonly count: number; readonly countByTagGroup: Record; readonly countNoTagGroup: number; static readonly tag = "unassigned_count_updated"; constructor(count: number, countByTagGroup: Record, countNoTagGroup: number); static isUnassignedCountUpdated(e: DomainEvent): e is UnassignedCountUpdated; } class AgentGroupCreated extends ExternalEvent { readonly id: string; readonly name: string; readonly tags: ReadonlyArray; readonly tagGroups: ReadonlyArray; readonly advisers: ReadonlyArray; static readonly tag = "agent_group_created"; constructor(id: string, name: string, tags: ReadonlyArray, tagGroups: ReadonlyArray, advisers: ReadonlyArray); static isAgentGroupCreated(e: DomainEvent): e is AgentGroupCreated; } class AgentGroupUpdated extends ExternalEvent { readonly id: string; readonly name: string; readonly tags: ReadonlyArray; readonly tagGroups: ReadonlyArray; readonly advisers: ReadonlyArray; static readonly tag = "agent_group_updated"; constructor(id: string, name: string, tags: ReadonlyArray, tagGroups: ReadonlyArray, advisers: ReadonlyArray); static isAgentGroupUpdated(e: DomainEvent): e is AgentGroupUpdated; } class AgentGroupDeleted extends ExternalEvent { readonly id: string; static readonly tag = "agent_group_deleted"; constructor(id: string); static isAgentGroupDeleted(e: DomainEvent): e is AgentGroupDeleted; } class AdviserTagGroupsUpdated extends ExternalEvent { readonly id: string; readonly tagGroups: ReadonlyArray; static readonly tag = "adviser_tag_groups_updated"; constructor(id: string, tagGroups: ReadonlyArray); static isAdviserTagGroupsUpdated(e: DomainEvent): e is AdviserTagGroupsUpdated; } }