export declare enum MessageType {
    COMMAND = "command",
    TEXT = "text",
    PICTURE = "picture",
    CHOICE = "choice",
    LINK = "link",
    BUTTON = "button",
    RDL = "rdl",
    RESULT = "result"
}
interface TextMessage {
    id?: number;
    type: MessageType.TEXT;
    text: string;
    icon: string | null;
}
interface CommandMessage {
    id?: number;
    type: MessageType.COMMAND;
    command: string;
    json?: any;
}
interface PictureMessage {
    id?: number;
    type: MessageType.PICTURE;
    url: string;
    icon: string | null;
}
export interface RDL {
    displayTitle: string;
    displayText?: string;
    webCallback: string;
    callback?: string;
}
interface RDLMessage {
    id?: number;
    type: MessageType.RDL;
    rdl: RDL;
    icon: string | null;
}
interface ChoiceMessage {
    id?: number;
    type: MessageType.CHOICE;
    idx: number;
    title: string;
}
interface LinkMessage {
    id?: number;
    type: MessageType.LINK;
    url: string;
    title: string;
}
interface ButtonMessage {
    id?: number;
    type: MessageType.BUTTON;
    json: string;
    title: string;
}
interface ResultMessage {
    id?: number;
    type: MessageType.RESULT;
    text: string;
    result: unknown;
    icon: string | null;
}
export declare type Message = TextMessage | CommandMessage | PictureMessage | RDLMessage | ChoiceMessage | LinkMessage | ButtonMessage | ResultMessage;
export {};
