/**
 * Event Job Types (Non-Message Events)
 * 100% khớp với automation-web event jobs
 */
import { BaseZaloWebhookEvent, ZaloWebhookEventType } from './webhook-job.types';
import { Typing, Reaction, SeenMessage, DeliveredMessage, Undo } from '../webhook';
/**
 * Typing Event Data - sử dụng trực tiếp Typing từ zalo-personal-sdk
 * Automation-web sử dụng trực tiếp: data: typing
 */
export type ZaloTypingData = Typing;
/**
 * Typing event interfaces - 4 variants
 */
export interface ZaloTypingBySelfInUserEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.TYPING_BY_SELF_IN_USER;
    data: ZaloTypingData;
}
export interface ZaloTypingBySelfInGroupEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.TYPING_BY_SELF_IN_GROUP;
    data: ZaloTypingData;
}
export interface ZaloTypingByOtherInUserEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.TYPING_BY_OTHER_IN_USER;
    data: ZaloTypingData;
}
export interface ZaloTypingByOtherInGroupEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.TYPING_BY_OTHER_IN_GROUP;
    data: ZaloTypingData;
}
/**
 * Union type for all typing events
 */
export type ZaloTypingEvent = ZaloTypingBySelfInUserEvent | ZaloTypingBySelfInGroupEvent | ZaloTypingByOtherInUserEvent | ZaloTypingByOtherInGroupEvent;
/**
 * Seen Message Event Data - sử dụng trực tiếp SeenMessage[] từ zalo-personal-sdk
 * Automation-web sử dụng trực tiếp: data: messages (array)
 */
export type ZaloSeenMessageData = SeenMessage[];
/**
 * Seen messages event interfaces - 4 variants
 */
export interface ZaloSeenMessagesBySelfInUserEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.SEEN_MESSAGES_BY_SELF_IN_USER;
    data: ZaloSeenMessageData;
}
export interface ZaloSeenMessagesBySelfInGroupEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.SEEN_MESSAGES_BY_SELF_IN_GROUP;
    data: ZaloSeenMessageData;
}
export interface ZaloSeenMessagesByOtherInUserEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.SEEN_MESSAGES_BY_OTHER_IN_USER;
    data: ZaloSeenMessageData;
}
export interface ZaloSeenMessagesByOtherInGroupEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.SEEN_MESSAGES_BY_OTHER_IN_GROUP;
    data: ZaloSeenMessageData;
}
/**
 * Union type for all seen message events
 */
export type ZaloSeenMessagesEvent = ZaloSeenMessagesBySelfInUserEvent | ZaloSeenMessagesBySelfInGroupEvent | ZaloSeenMessagesByOtherInUserEvent | ZaloSeenMessagesByOtherInGroupEvent;
/**
 * Delivered Message Event Data - sử dụng trực tiếp DeliveredMessage[] từ zalo-personal-sdk
 * Automation-web sử dụng trực tiếp: data: messages (array)
 */
export type ZaloDeliveredMessageData = DeliveredMessage[];
/**
 * Delivered messages event interfaces - 4 variants
 */
export interface ZaloDeliveredMessagesBySelfInUserEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.DELIVERED_MESSAGES_BY_SELF_IN_USER;
    data: ZaloDeliveredMessageData;
}
export interface ZaloDeliveredMessagesBySelfInGroupEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.DELIVERED_MESSAGES_BY_SELF_IN_GROUP;
    data: ZaloDeliveredMessageData;
}
export interface ZaloDeliveredMessagesByOtherInUserEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.DELIVERED_MESSAGES_BY_OTHER_IN_USER;
    data: ZaloDeliveredMessageData;
}
export interface ZaloDeliveredMessagesByOtherInGroupEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.DELIVERED_MESSAGES_BY_OTHER_IN_GROUP;
    data: ZaloDeliveredMessageData;
}
/**
 * Union type for all delivered message events
 */
export type ZaloDeliveredMessagesEvent = ZaloDeliveredMessagesBySelfInUserEvent | ZaloDeliveredMessagesBySelfInGroupEvent | ZaloDeliveredMessagesByOtherInUserEvent | ZaloDeliveredMessagesByOtherInGroupEvent;
/**
 * Reaction Event Data - sử dụng trực tiếp Reaction từ zalo-personal-sdk
 * Automation-web sử dụng trực tiếp: data: reaction
 */
export type ZaloReactionData = Reaction;
/**
 * Reaction event interfaces - 4 variants
 */
export interface ZaloReactionBySelfInUserEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.REACTION_BY_SELF_IN_USER;
    data: ZaloReactionData;
}
export interface ZaloReactionBySelfInGroupEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.REACTION_BY_SELF_IN_GROUP;
    data: ZaloReactionData;
}
export interface ZaloReactionByOtherInUserEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.REACTION_BY_OTHER_IN_USER;
    data: ZaloReactionData;
}
export interface ZaloReactionByOtherInGroupEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.REACTION_BY_OTHER_IN_GROUP;
    data: ZaloReactionData;
}
/**
 * Union type for all reaction events
 */
export type ZaloReactionEvent = ZaloReactionBySelfInUserEvent | ZaloReactionBySelfInGroupEvent | ZaloReactionByOtherInUserEvent | ZaloReactionByOtherInGroupEvent;
/**
 * Undo Event Data - sử dụng trực tiếp Undo từ zalo-personal-sdk
 * Automation-web sử dụng trực tiếp: data: undo
 */
export type ZaloUndoData = Undo;
/**
 * Undo event interfaces - 4 variants
 */
export interface ZaloUndoBySelfInUserEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.UNDO_BY_SELF_IN_USER;
    data: ZaloUndoData;
}
export interface ZaloUndoBySelfInGroupEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.UNDO_BY_SELF_IN_GROUP;
    data: ZaloUndoData;
}
export interface ZaloUndoByOtherInUserEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.UNDO_BY_OTHER_IN_USER;
    data: ZaloUndoData;
}
export interface ZaloUndoByOtherInGroupEvent extends BaseZaloWebhookEvent {
    eventType: ZaloWebhookEventType.UNDO_BY_OTHER_IN_GROUP;
    data: ZaloUndoData;
}
/**
 * Union type for all undo events
 */
export type ZaloUndoEvent = ZaloUndoBySelfInUserEvent | ZaloUndoBySelfInGroupEvent | ZaloUndoByOtherInUserEvent | ZaloUndoByOtherInGroupEvent;
//# sourceMappingURL=event-job.types.d.ts.map