/**
 * Webhook Job Types
 * 100% khớp với automation-web/src/shared/types/zalo-webhook-events.types.ts
 * Cấu trúc job khi đưa vào queue
 */
/**
 * Thread Type enum
 */
export declare enum ZaloThreadType {
    USER = "user",
    GROUP = "group"
}
/**
 * Connection Status enum
 */
export declare enum ZaloConnectionStatus {
    CONNECTED = "connected",
    DISCONNECTED = "disconnected",
    RECONNECTING = "reconnecting",
    LOGGED_OUT = "logged_out"
}
/**
 * Event Type enum - Chuẩn hóa tất cả event types
 */
export declare enum ZaloWebhookEventType {
    TEXT_MESSAGE_SENT_TO_USER = "text-message-sent-to-user",
    TEXT_MESSAGE_SENT_TO_GROUP = "text-message-sent-to-group",
    TEXT_MESSAGE_RECEIVED_FROM_USER = "text-message-received-from-user",
    TEXT_MESSAGE_RECEIVED_FROM_GROUP = "text-message-received-from-group",
    IMAGE_MESSAGE_SENT_TO_USER = "image-message-sent-to-user",
    IMAGE_MESSAGE_SENT_TO_GROUP = "image-message-sent-to-group",
    IMAGE_MESSAGE_RECEIVED_FROM_USER = "image-message-received-from-user",
    IMAGE_MESSAGE_RECEIVED_FROM_GROUP = "image-message-received-from-group",
    VIDEO_MESSAGE_SENT_TO_USER = "video-message-sent-to-user",
    VIDEO_MESSAGE_SENT_TO_GROUP = "video-message-sent-to-group",
    VIDEO_MESSAGE_RECEIVED_FROM_USER = "video-message-received-from-user",
    VIDEO_MESSAGE_RECEIVED_FROM_GROUP = "video-message-received-from-group",
    VOICE_MESSAGE_SENT_TO_USER = "voice-message-sent-to-user",
    VOICE_MESSAGE_SENT_TO_GROUP = "voice-message-sent-to-group",
    VOICE_MESSAGE_RECEIVED_FROM_USER = "voice-message-received-from-user",
    VOICE_MESSAGE_RECEIVED_FROM_GROUP = "voice-message-received-from-group",
    FILE_MESSAGE_SENT_TO_USER = "file-message-sent-to-user",
    FILE_MESSAGE_SENT_TO_GROUP = "file-message-sent-to-group",
    FILE_MESSAGE_RECEIVED_FROM_USER = "file-message-received-from-user",
    FILE_MESSAGE_RECEIVED_FROM_GROUP = "file-message-received-from-group",
    STICKER_MESSAGE_SENT_TO_USER = "sticker-message-sent-to-user",
    STICKER_MESSAGE_SENT_TO_GROUP = "sticker-message-sent-to-group",
    STICKER_MESSAGE_RECEIVED_FROM_USER = "sticker-message-received-from-user",
    STICKER_MESSAGE_RECEIVED_FROM_GROUP = "sticker-message-received-from-group",
    LOCATION_MESSAGE_SENT_TO_USER = "location-message-sent-to-user",
    LOCATION_MESSAGE_SENT_TO_GROUP = "location-message-sent-to-group",
    LOCATION_MESSAGE_RECEIVED_FROM_USER = "location-message-received-from-user",
    LOCATION_MESSAGE_RECEIVED_FROM_GROUP = "location-message-received-from-group",
    GIF_MESSAGE_SENT_TO_USER = "gif-message-sent-to-user",
    GIF_MESSAGE_SENT_TO_GROUP = "gif-message-sent-to-group",
    GIF_MESSAGE_RECEIVED_FROM_USER = "gif-message-received-from-user",
    GIF_MESSAGE_RECEIVED_FROM_GROUP = "gif-message-received-from-group",
    LINK_MESSAGE_SENT_TO_USER = "link-message-sent-to-user",
    LINK_MESSAGE_SENT_TO_GROUP = "link-message-sent-to-group",
    LINK_MESSAGE_RECEIVED_FROM_USER = "link-message-received-from-user",
    LINK_MESSAGE_RECEIVED_FROM_GROUP = "link-message-received-from-group",
    DOODLE_MESSAGE_SENT_TO_USER = "doodle-message-sent-to-user",
    DOODLE_MESSAGE_SENT_TO_GROUP = "doodle-message-sent-to-group",
    DOODLE_MESSAGE_RECEIVED_FROM_USER = "doodle-message-received-from-user",
    DOODLE_MESSAGE_RECEIVED_FROM_GROUP = "doodle-message-received-from-group",
    RECOMMENDED_MESSAGE_SENT_TO_USER = "recommended-message-sent-to-user",
    RECOMMENDED_MESSAGE_SENT_TO_GROUP = "recommended-message-sent-to-group",
    RECOMMENDED_MESSAGE_RECEIVED_FROM_USER = "recommended-message-received-from-user",
    RECOMMENDED_MESSAGE_RECEIVED_FROM_GROUP = "recommended-message-received-from-group",
    OLD_MESSAGES = "old-messages",
    TYPING_BY_SELF_IN_USER = "typing-by-self-in-user",
    TYPING_BY_SELF_IN_GROUP = "typing-by-self-in-group",
    TYPING_BY_OTHER_IN_USER = "typing-by-other-in-user",
    TYPING_BY_OTHER_IN_GROUP = "typing-by-other-in-group",
    SEEN_MESSAGES_BY_SELF_IN_USER = "seen-messages-by-self-in-user",
    SEEN_MESSAGES_BY_SELF_IN_GROUP = "seen-messages-by-self-in-group",
    SEEN_MESSAGES_BY_OTHER_IN_USER = "seen-messages-by-other-in-user",
    SEEN_MESSAGES_BY_OTHER_IN_GROUP = "seen-messages-by-other-in-group",
    DELIVERED_MESSAGES_BY_SELF_IN_USER = "delivered-messages-by-self-in-user",
    DELIVERED_MESSAGES_BY_SELF_IN_GROUP = "delivered-messages-by-self-in-group",
    DELIVERED_MESSAGES_BY_OTHER_IN_USER = "delivered-messages-by-other-in-user",
    DELIVERED_MESSAGES_BY_OTHER_IN_GROUP = "delivered-messages-by-other-in-group",
    REACTION_BY_SELF_IN_USER = "reaction-by-self-in-user",
    REACTION_BY_SELF_IN_GROUP = "reaction-by-self-in-group",
    REACTION_BY_OTHER_IN_USER = "reaction-by-other-in-user",
    REACTION_BY_OTHER_IN_GROUP = "reaction-by-other-in-group",
    OLD_REACTIONS_BY_SELF_IN_USER = "old-reactions-by-self-in-user",
    OLD_REACTIONS_BY_SELF_IN_GROUP = "old-reactions-by-self-in-group",
    OLD_REACTIONS_BY_OTHER_IN_USER = "old-reactions-by-other-in-user",
    OLD_REACTIONS_BY_OTHER_IN_GROUP = "old-reactions-by-other-in-group",
    FRIEND_EVENT_ADD = "friend-event-add",
    FRIEND_EVENT_REMOVE = "friend-event-remove",
    FRIEND_EVENT_REQUEST = "friend-event-request",
    FRIEND_EVENT_UNDO_REQUEST = "friend-event-undo-request",
    FRIEND_EVENT_REJECT_REQUEST = "friend-event-reject-request",
    FRIEND_EVENT_SEEN_REQUEST = "friend-event-seen-request",
    FRIEND_EVENT_BLOCK = "friend-event-block",
    FRIEND_EVENT_UNBLOCK = "friend-event-unblock",
    FRIEND_EVENT_BLOCK_CALL = "friend-event-block-call",
    FRIEND_EVENT_UNBLOCK_CALL = "friend-event-unblock-call",
    FRIEND_EVENT_PIN_UNPIN = "friend-event-pin-unpin",
    FRIEND_EVENT_PIN_CREATE = "friend-event-pin-create",
    FRIEND_EVENT_UNKNOWN = "friend-event-unknown",
    GROUP_EVENT_JOIN_REQUEST = "group-event-join-request",
    GROUP_EVENT_JOIN = "group-event-join",
    GROUP_EVENT_LEAVE = "group-event-leave",
    GROUP_EVENT_REMOVE_MEMBER = "group-event-remove-member",
    GROUP_EVENT_BLOCK_MEMBER = "group-event-block-member",
    GROUP_EVENT_UPDATE_SETTING = "group-event-update-setting",
    GROUP_EVENT_UPDATE = "group-event-update",
    GROUP_EVENT_NEW_LINK = "group-event-new-link",
    GROUP_EVENT_ADD_ADMIN = "group-event-add-admin",
    GROUP_EVENT_REMOVE_ADMIN = "group-event-remove-admin",
    GROUP_EVENT_NEW_PIN_TOPIC = "group-event-new-pin-topic",
    GROUP_EVENT_UPDATE_PIN_TOPIC = "group-event-update-pin-topic",
    GROUP_EVENT_REORDER_PIN_TOPIC = "group-event-reorder-pin-topic",
    GROUP_EVENT_UPDATE_BOARD = "group-event-update-board",
    GROUP_EVENT_REMOVE_BOARD = "group-event-remove-board",
    GROUP_EVENT_UPDATE_TOPIC = "group-event-update-topic",
    GROUP_EVENT_UNPIN_TOPIC = "group-event-unpin-topic",
    GROUP_EVENT_REMOVE_TOPIC = "group-event-remove-topic",
    GROUP_EVENT_ACCEPT_REMIND = "group-event-accept-remind",
    GROUP_EVENT_REJECT_REMIND = "group-event-reject-remind",
    GROUP_EVENT_REMIND_TOPIC = "group-event-remind-topic",
    GROUP_EVENT_UPDATE_AVATAR = "group-event-update-avatar",
    GROUP_EVENT_UNKNOWN = "group-event-unknown",
    UNDO_BY_SELF_IN_USER = "undo-by-self-in-user",
    UNDO_BY_SELF_IN_GROUP = "undo-by-self-in-group",
    UNDO_BY_OTHER_IN_USER = "undo-by-other-in-user",
    UNDO_BY_OTHER_IN_GROUP = "undo-by-other-in-group",
    CONNECTION_STATUS_CONNECTED = "connection-status-connected",
    CONNECTION_STATUS_DISCONNECTED = "connection-status-disconnected",
    CONNECTION_STATUS_RECONNECTING = "connection-status-reconnecting",
    CONNECTION_STATUS_LOGGED_OUT = "connection-status-logged-out",
    UPLOAD_ATTACHMENT_IN_PROGRESS = "upload-attachment-in-progress",
    UPLOAD_ATTACHMENT_COMPLETED = "upload-attachment-completed",
    UPLOAD_ATTACHMENT_FAILED = "upload-attachment-failed",
    CIPHER_KEY_UPDATED_IN_USER = "cipher-key-updated-in-user",
    CIPHER_KEY_UPDATED_IN_GROUP = "cipher-key-updated-in-group",
    CIPHER_KEY_EXPIRED_IN_USER = "cipher-key-expired-in-user",
    CIPHER_KEY_EXPIRED_IN_GROUP = "cipher-key-expired-in-group",
    ERROR_SYSTEM = "error-system",
    ERROR_NETWORK = "error-network",
    ERROR_AUTHENTICATION = "error-authentication",
    ERROR_VALIDATION = "error-validation",
    ERROR_BUSINESS_LOGIC = "error-business-logic",
    ERROR_UNKNOWN = "error-unknown"
}
/**
 * Base webhook event interface - Cấu trúc job chuẩn
 */
export interface BaseZaloWebhookEvent {
    sessionId: string;
    userUuid: string;
    timestamp: number;
    eventType: ZaloWebhookEventType;
    metadata?: Record<string, any>;
}
/**
 * Job Priority enum
 */
export declare enum JobPriority {
    LOW = 1,
    NORMAL = 2,
    HIGH = 3,
    CRITICAL = 4
}
/**
 * Job Status enum
 */
export declare enum JobStatus {
    WAITING = "waiting",
    ACTIVE = "active",
    COMPLETED = "completed",
    FAILED = "failed",
    DELAYED = "delayed",
    PAUSED = "paused"
}
/**
 * Queue Job Configuration
 */
export interface QueueJobConfig {
    priority?: JobPriority;
    delay?: number;
    attempts?: number;
    backoff?: {
        type: 'fixed' | 'exponential';
        delay: number;
    };
    removeOnComplete?: number | boolean;
    removeOnFail?: number | boolean;
    jobId?: string;
}
/**
 * Base Queue Job Interface - Cấu trúc job khi đưa vào queue
 */
export interface BaseQueueJob<T = any> {
    id?: string;
    name: string;
    data: T;
    opts?: QueueJobConfig;
    progress?: number;
    returnvalue?: any;
    failedReason?: string;
    stacktrace?: string[];
    attemptsMade?: number;
    delay?: number;
    timestamp?: number;
    processedOn?: number;
    finishedOn?: number;
}
/**
 * Webhook Queue Job - Job cụ thể cho webhook events
 */
export interface WebhookQueueJob extends BaseQueueJob<BaseZaloWebhookEvent> {
    name: 'webhook-event';
    data: BaseZaloWebhookEvent;
}
//# sourceMappingURL=webhook-job.types.d.ts.map