/// <reference types="node" />
/** TEXT (此元素可使用字符串代替) */
export interface TextElem {
    type: "text";
    text: string;
}
/** AT */
export interface AtElem {
    type: "at";
    /** 在频道消息中该值为0 */
    qq: number | "all";
    /** 频道中的tiny_id */
    id?: string | "all";
    text?: string;
    /** 假at */
    dummy?: boolean;
}
/** 表情 */
export interface FaceElem {
    type: "face" | "sface";
    /** face为0~324，sface不明 */
    id: number;
    text?: string;
}
/** 原创表情 */
export interface BfaceElem {
    type: "bface";
    /** 暂时只能发收到的file */
    file: string;
    text: string;
}
/** 魔法表情 */
export interface MfaceElem {
    type: "rps" | "dice";
    id?: number;
}
/** 图片 */
export interface ImageElem {
    type: "image";
    /**
     * @type {string} filepath such as "/tmp/1.jpg"
     * @type {Buffer} image buffer
     * @type {Readable} a readable stream of image
     */
    file: string | Buffer | import("stream").Readable;
    /** 网络图片是否使用缓存 */
    cache?: boolean;
    /** 流的超时时间，默认60(秒) */
    timeout?: number;
    headers?: import("http").OutgoingHttpHeaders;
    /** 这个参数只有在接收时有用 */
    url?: string;
    /** 是否作为表情发送 */
    asface?: boolean;
    /** 是否显示下载原图按钮 */
    origin?: boolean;
}
/** 闪照 */
export interface FlashElem extends Omit<ImageElem, "type"> {
    type: "flash";
}
/** 语音 */
export interface PttElem {
    type: "record";
    /**
     * support for raw silk and amr file
     * @type {string} filepath such as "/tmp/1.slk"
     * @type {Buffer} ptt buffer (silk or amr)
     */
    file: string | Buffer;
    url?: string;
    md5?: string;
    size?: number;
    seconds?: number;
}
/** 视频 */
export interface VideoElem {
    type: "video";
    /**
     * need ffmpeg and ffprobe
     * @type {string} filepath such as "/tmp/1.mp4"
     */
    file: string;
    name?: string;
    fid?: string;
    md5?: string;
    size?: number;
    seconds?: number;
}
/** 地点分享 */
export interface LocationElem {
    type: "location";
    address: string;
    lat: number;
    lng: number;
    name?: string;
    id?: string;
}
/** 链接分享 */
export interface ShareElem {
    type: "share";
    url: string;
    title: string;
    content?: string;
    image?: string;
}
/** JSON */
export interface JsonElem {
    type: "json";
    data: any;
}
/** XML */
export interface XmlElem {
    type: "xml";
    data: string;
    id?: number;
}
/** 戳一戳 */
export interface PokeElem {
    type: "poke";
    /** 0~6 */
    id: number;
    text?: string;
}
/** 特殊 (官方客户端无法解析此消息) */
export interface MiraiElem {
    type: "mirai";
    data: string;
}
/** 文件 (暂时只支持接收，发送请使用文件专用API) */
export interface FileElem {
    type: "file";
    name: string;
    fid: string;
    md5: string;
    size: number;
    duration: number;
}
/** @deprecated @cqhttp 旧版引用回复(已弃用)，仅做一定程度的兼容 */
export interface ReplyElem {
    type: "reply";
    id: string;
}
/** 可引用回复的消息 */
export interface Quotable {
    user_id: number;
    time: number;
    seq: number;
    /** 私聊回复必须 */
    rand: number;
    /** 收到的引用回复永远是字符串 */
    message: Sendable;
}
/** 可转发的消息 */
export interface Forwardable {
    user_id: number;
    message: Sendable;
    nickname?: string;
    time?: number;
}
/** 可组合发送的元素 */
export type ChainElem = TextElem | FaceElem | BfaceElem | MfaceElem | ImageElem | AtElem | MiraiElem | ReplyElem;
/** 注意：只有`ChainElem`中的元素可以组合发送，其他元素只能单独发送 */
export type MessageElem = TextElem | FaceElem | BfaceElem | MfaceElem | ImageElem | AtElem | MiraiElem | ReplyElem | FlashElem | PttElem | VideoElem | JsonElem | XmlElem | PokeElem | LocationElem | ShareElem | FileElem;
/** 可通过sendMsg发送的类型集合 (字符串、元素对象，或它们的数组) */
export type Sendable = string | MessageElem | (string | MessageElem)[];
/** 用于构造消息元素 */
export declare const segment: {
    /** @deprecated 文本，建议直接使用字符串 */
    text(text: string): TextElem;
    /** 经典表情(id=0~324) */
    face(id: number): FaceElem;
    /** 小表情(id规则不明) */
    sface(id: number, text?: string): FaceElem;
    /** 原创表情(file规则不明) */
    bface(file: string, text: string): BfaceElem;
    /** 猜拳(id=1~3) */
    rps(id?: number): MfaceElem;
    /** 骰子(id=1~6) */
    dice(id?: number): MfaceElem;
    /** mention@提及
     * @param qq 全体成员:"all", 频道:tiny_id
     */
    at(qq: number | "all" | string, text?: string, dummy?: boolean): AtElem;
    /** 图片(支持http://,base64://) */
    image(file: ImageElem["file"], cache?: boolean, timeout?: number, headers?: import("http").OutgoingHttpHeaders): ImageElem;
    /** 闪照(支持http://,base64://) */
    flash(file: ImageElem["file"], cache?: boolean, timeout?: number, headers?: import("http").OutgoingHttpHeaders): FlashElem;
    /** 语音(支持http://,base64://) */
    record(file: string | Buffer): PttElem;
    /** 视频(仅支持本地文件) */
    video(file: string): VideoElem;
    json(data: any): JsonElem;
    xml(data: string, id?: number): XmlElem;
    /** 一种特殊消息(官方客户端无法解析) */
    mirai(data: string): MiraiElem;
    /** 链接分享 */
    share(url: string, title: string, image?: string, content?: string): ShareElem;
    /** 位置分享 */
    location(lat: number, lng: number, address: string, id?: string): LocationElem;
    /** id 0~6 */
    poke(id: number): PokeElem;
    /** @deprecated 将CQ码转换为消息链 */
    fromCqcode(str: string): MessageElem[];
};
