/**
 * Thread Type Enum - chuẩn theo zalo-personal SDK
 */
export declare enum ThreadType {
    User = 0,
    Group = 1
}
/**
 * Text Style Enum - chuẩn theo zalo-personal SDK
 */
export declare enum TextStyle {
    Bold = "b",
    Italic = "i",
    Underline = "u",
    StrikeThrough = "s",
    Red = "c_db342e",
    Orange = "c_f27806",
    Yellow = "c_f7b503",
    Green = "c_15a85f",
    Small = "f_13",
    Big = "f_18",
    UnorderedList = "lst_1",
    OrderedList = "lst_2",
    Indent = "ind_$"
}
/**
 * Urgency Enum - chuẩn theo zalo-personal SDK
 */
export declare enum Urgency {
    Default = 0,
    Important = 1,
    Urgent = 2
}
/**
 * Message Type Enum - chuẩn theo automation-web
 */
export declare enum MessageType {
    WebChat = "webchat",
    Photo = "chat.photo",
    Video = "chat.video",
    File = "chat.file",
    Sticker = "chat.sticker",
    Link = "chat.link",
    Location = "chat.location",
    Contact = "chat.contact",
    Todo = "chat.todo",
    GroupPoll = "group.poll"
}
/**
 * Zalo Reactions Enum - chuẩn theo automation-web
 */
export declare enum ZaloReactions {
    HEART = "/-heart",
    LIKE = "/-strong",
    HAHA = ":>",
    WOW = ":o",
    CRY = ":-((",
    ANGRY = ":-h",
    KISS = ":-*",
    TEARS_OF_JOY = ":')",
    SHIT = "/-shit",
    ROSE = "/-rose",
    BROKEN_HEART = "/-break",
    DISLIKE = "/-weak",
    LOVE = ";xx",
    CONFUSED = ";-/",
    WINK = ";-)",
    FADE = "/-fade",
    SUN = "/-li",
    BIRTHDAY = "/-bd",
    BOMB = "/-bome",
    OK = "/-ok",
    PEACE = "/-v",
    THANKS = "/-thanks",
    PUNCH = "/-punch",
    SHARE = "/-share",
    PRAY = "_()_",
    NO = "/-no",
    BAD = "/-bad",
    LOVE_YOU = "/-loveu",
    SAD = "--b",
    VERY_SAD = ":((",
    COOL = "x-)",
    NERD = "8-)",
    BIG_SMILE = ";-d",
    SUNGLASSES = "b-)",
    NEUTRAL = ":--|",
    SAD_FACE = "p-(",
    BYE = ":-bye",
    SLEEPY = "|-)",
    WIPE = ":wipe",
    DIG = ":-dig",
    ANGUISH = "&-(",
    HANDCLAP = ":handclap",
    ANGRY_FACE = ">-|",
    F_CHAIR = ":-f",
    L_CHAIR = ":-l",
    R_CHAIR = ":-r",
    SILENT = ";-x",
    SURPRISE = ":-o",
    EMBARRASSED = ";-s",
    AFRAID = ";-a",
    SAD2 = ":-<",
    BIG_LAUGH = ":))",
    RICH = "$-)",
    BEER = "/-beer"
}
/**
 * Style interface - chuẩn theo automation-web StyleDto
 */
export interface Style {
    /**
     * Vị trí bắt đầu của style
     */
    start: number;
    /**
     * Độ dài của text được style
     */
    len: number;
    /**
     * Loại style
     */
    st: TextStyle;
}
/**
 * Mention interface - chuẩn theo automation-web MentionDto
 */
export interface Mention {
    /**
     * Vị trí của mention trong text
     */
    pos: number;
    /**
     * User ID được mention
     */
    uid: string;
    /**
     * Độ dài của mention text
     */
    len: number;
}
/**
 * Attachment Content interface - chuẩn theo automation-web AttachmentContentDto
 */
export interface AttachmentContent {
    /**
     * Tiêu đề attachment
     */
    title?: string;
    /**
     * Mô tả attachment
     */
    description?: string;
    /**
     * Link href của attachment
     */
    href?: string;
    /**
     * Link thumbnail
     */
    thumb?: string;
    /**
     * Số lượng children
     */
    childnumber?: number;
    /**
     * Action type
     */
    action?: string;
    /**
     * Parameters JSON string
     */
    params?: string;
    /**
     * Content type
     */
    type?: string;
}
/**
 * Property Extension interface - chuẩn theo automation-web PropertyExtDto
 */
export interface PropertyExt {
    /**
     * Màu sắc
     */
    color?: number;
    /**
     * Kích thước
     */
    size?: number;
    /**
     * Loại
     */
    type?: number;
    /**
     * Loại phụ
     */
    subType?: number;
    /**
     * Extension data
     */
    ext?: string;
}
/**
 * Send Message Quote interface - chuẩn theo automation-web SendMessageQuoteDto
 */
export interface SendMessageQuote {
    /**
     * Nội dung tin nhắn được quote
     */
    content: string | AttachmentContent | Record<string, any>;
    /**
     * Loại tin nhắn được quote
     */
    msgType: MessageType;
    /**
     * Property extension của tin nhắn được quote
     */
    propertyExt?: PropertyExt;
    /**
     * User ID người gửi tin nhắn được quote
     */
    uidFrom: string;
    /**
     * Message ID được quote
     */
    msgId: string;
    /**
     * Client Message ID
     */
    cliMsgId: string;
    /**
     * Timestamp (string format)
     */
    ts: string;
    /**
     * Time to live (seconds)
     */
    ttl: number;
}
/**
 * Attachment Metadata interface - chuẩn theo automation-web AttachmentMetadataDto
 */
export interface AttachmentMetadata {
    /**
     * Kích thước file (bytes)
     */
    totalSize: number;
    /**
     * Chiều rộng (cho ảnh/video)
     */
    width?: number;
    /**
     * Chiều cao (cho ảnh/video)
     */
    height?: number;
}
/**
 * Attachment interface - chuẩn theo automation-web AttachmentDto
 */
export interface Attachment {
    /**
     * URL để tải file từ internet
     */
    url?: string;
    /**
     * Tên file (bắt buộc khi dùng URL hoặc Buffer)
     */
    filename?: string;
    /**
     * HTTP headers cho download (khi dùng URL)
     */
    headers?: Record<string, string>;
    /**
     * Đường dẫn file local
     */
    filePath?: string;
    /**
     * Base64 encoded file data
     */
    base64Data?: string;
    /**
     * Metadata của file (bắt buộc khi dùng base64Data)
     */
    metadata?: AttachmentMetadata;
}
/**
 * DTO để gửi tin nhắn - chuẩn theo automation-web SendMessageDto
 */
export interface SendMessageRequest {
    /**
     * Nội dung tin nhắn
     */
    msg: string;
    /**
     * ID thread (user hoặc group)
     */
    threadId: string;
    /**
     * Loại thread
     */
    type: ThreadType;
    /**
     * Session ID của Zalo Personal
     */
    sessionId: string;
    /**
     * Text styles - định dạng văn bản
     */
    styles?: Style[];
    /**
     * Mentions trong tin nhắn
     */
    mentions?: Mention[];
    /**
     * Quote message - tin nhắn được trả lời
     */
    quote?: SendMessageQuote;
    /**
     * Danh sách file đính kèm
     */
    attachments?: Attachment[];
    /**
     * Mức độ ưu tiên tin nhắn
     */
    urgency?: Urgency;
    /**
     * Time to live - thời gian tự hủy tin nhắn (milliseconds)
     */
    ttl?: number;
}
/**
 * DTO để gửi sticker - chuẩn theo automation-web SendStickerDto
 */
export interface SendStickerRequest {
    /**
     * Session ID của Zalo Personal
     */
    sessionId: string;
    /**
     * ID thread (user hoặc group)
     */
    threadId: string;
    /**
     * Loại thread
     */
    type: ThreadType;
    /**
     * ID của sticker
     */
    stickerId: string;
    /**
     * ID category của sticker
     */
    categoryId: string;
    /**
     * Loại sticker
     */
    stickerType: number;
}
/**
 * DTO để gửi voice message - chuẩn theo automation-web SendVoiceDto
 */
export interface SendVoiceRequest {
    /**
     * Session ID của Zalo Personal
     */
    sessionId: string;
    /**
     * ID thread (user hoặc group)
     */
    threadId: string;
    /**
     * Loại thread
     */
    type: ThreadType;
    /**
     * URL của file voice
     */
    fileUrl: string;
    /**
     * Thời lượng voice (giây)
     */
    duration?: number;
}
/**
 * DTO để gửi video message - chuẩn theo automation-web SendVideoDto
 */
export interface SendVideoRequest {
    /**
     * Session ID của Zalo Personal
     */
    sessionId: string;
    /**
     * ID thread (user hoặc group)
     */
    threadId: string;
    /**
     * Loại thread
     */
    type: ThreadType;
    /**
     * URL của video
     */
    videoUrl: string;
    /**
     * Thời lượng video (giây)
     */
    duration?: number;
    /**
     * Chiều rộng video
     */
    width?: number;
    /**
     * Chiều cao video
     */
    height?: number;
}
/**
 * DTO để gửi link message - chuẩn theo automation-web SendLinkDto
 */
export interface SendLinkRequest {
    /**
     * Session ID của Zalo Personal
     */
    sessionId: string;
    /**
     * ID thread (user hoặc group)
     */
    threadId: string;
    /**
     * Loại thread
     */
    type: ThreadType;
    /**
     * Link cần gửi
     */
    link: string;
    /**
     * Tin nhắn kèm theo link
     */
    msg?: string;
    /**
     * Time to live (giây)
     */
    ttl?: number;
}
/**
 * DTO để gửi contact card - chuẩn theo automation-web SendCardDto
 */
export interface SendCardRequest {
    /**
     * Session ID của Zalo Personal
     */
    sessionId: string;
    /**
     * ID thread (user hoặc group)
     */
    threadId: string;
    /**
     * Loại thread
     */
    type: ThreadType;
    /**
     * User ID của người cần chia sẻ thông tin
     */
    userId: string;
    /**
     * Số điện thoại của người cần chia sẻ thông tin
     */
    phoneNumber?: string;
}
/**
 * DTO để chuyển tiếp tin nhắn - chuẩn theo automation-web ForwardMessageDto
 */
export interface ForwardMessageRequest {
    /**
     * Session ID của Zalo Personal
     */
    sessionId: string;
    /**
     * Tin nhắn cần chuyển tiếp
     */
    message: any;
    /**
     * Danh sách thread IDs đích
     */
    threadIds: string[];
    /**
     * Loại thread đích
     */
    type: ThreadType;
    /**
     * Reference message (optional)
     */
    reference?: any;
}
/**
 * DTO để xóa tin nhắn - chuẩn theo automation-web DeleteMessageDto
 */
export interface DeleteMessageRequest {
    /**
     * Session ID của Zalo Personal
     */
    sessionId: string;
    /**
     * ID tin nhắn cần xóa
     */
    messageId: string;
    /**
     * ID thread (user hoặc group)
     */
    threadId: string;
    /**
     * Loại thread
     */
    type: ThreadType;
}
/**
 * DTO để thu hồi tin nhắn (undo) - chuẩn theo automation-web UndoMessageDto
 */
export interface UndoMessageRequest {
    /**
     * Session ID của Zalo Personal
     */
    sessionId: string;
    /**
     * ID tin nhắn cần thu hồi
     */
    msgId: string;
    /**
     * Client message ID
     */
    cliMsgId: string;
    /**
     * ID thread (user hoặc group)
     */
    threadId: string;
    /**
     * Loại thread
     */
    type: ThreadType;
}
/**
 * DTO để thêm reaction - chuẩn theo automation-web AddReactionDto
 */
export interface AddReactionRequest {
    /**
     * Session ID của Zalo Personal
     */
    sessionId: string;
    /**
     * Loại reaction (sử dụng ZaloReactions enum)
     */
    reaction: ZaloReactions;
    /**
     * Message ID (global message ID)
     */
    msgId: string;
    /**
     * Client message ID
     */
    cliMsgId: string;
    /**
     * ID thread (user hoặc group)
     */
    threadId: string;
    /**
     * Loại thread
     */
    type: ThreadType;
}
/**
 * Response DTO cho send message - chuẩn theo automation-web SendMessageResponseDto
 */
export interface SendMessageResponse {
    /**
     * Thông tin tin nhắn đã gửi
     */
    message: any;
    /**
     * Thông tin attachments đã gửi
     */
    attachment: any[];
    /**
     * Trạng thái thành công
     */
    success?: boolean;
    /**
     * Thông báo lỗi nếu có
     */
    error?: string;
}
/**
 * Response types từ zalo-personal SDK - import từ automation-web
 */
export interface SendStickerResponse {
    success: boolean;
    messageId?: string;
    error?: string;
}
export interface SendVoiceResponse {
    success: boolean;
    messageId?: string;
    error?: string;
}
export type SendVideoResponse = {
    msgId: number;
};
export type SendLinkResponse = {
    msgId: string;
};
export type SendCardResponse = {
    msgId: number;
};
export type Success = {
    clientId: string;
    msgId: string;
};
export type Failed = {
    clientId: string;
    errorCode: number;
    errorMessage: string;
};
export interface ForwardMessageResponse {
    success: boolean;
    messageIds?: string[];
    error?: string;
}
export type DeleteMessageResponse = {
    status: number;
};
export type UndoResponse = {
    status: number;
};
export interface AddReactionResponse {
    success: boolean;
    error?: string;
}
//# sourceMappingURL=messaging.type.d.ts.map