import type { Request, Result } from '../utils';
import type { User } from '../model/user';
import type { Guild } from '../model/guild';
export interface SendUserMessageParams {
    /** 文本内容 */
    content?: string;
    /** 消息类型： 0 文本，1 图文混排 ，2 markdown 3 ark，4 embed 7 富媒体 */
    msg_type: 0 | 1 | 2 | 3 | 4 | 7;
    markdown?: Record<string, unknown>;
    keyboard?: Record<string, unknown>;
    ark?: Record<string, unknown>;
    media?: {
        file_info: string;
    };
    /**
     * @deprecated 暂不支持
     */
    image?: unknown;
    /**
     * 消息引用
     * @deprecated 暂未支持
     */
    message_reference?: Record<string, unknown>;
    /**
     * 前置收到的事件 ID，用于发送被动消息
     * @deprecated 暂未支持
     */
    event_id?: string;
    /** 前置收到的消息 ID，用于发送被动消息 */
    msg_id?: string;
    /**
     * 回复消息的序号，与 msg_id 联合使用，避免相同消息 id 回复重复发送，不填默认是 1。
     * 相同的 msg_id + msg_seq 重复发送会失败。
     */
    msg_seq?: number;
}
export interface UserMessage {
    /** 消息唯一 ID */
    id: string;
    /** 发送时间 */
    timestamp: string;
}
export interface SendUserMessageFileParams {
    /** 媒体类型 */
    file_type: number;
    /** 需要发送媒体资源的 url */
    url: string;
    /** 设置 true 会直接发送消息到目标端，且会占用主动消息频次 */
    srv_send_msg: boolean;
    /**
     * @deprecated 暂未支持
     */
    file_data?: unknown;
}
export interface UserFile {
    /** 消息唯一 ID */
    id: string;
    /** 发送时间 */
    timestamp: string;
}
export interface GetUserGuildsParams {
    /** 读此 guild id 之前的数据	before 设置时， 先反序，再分页 */
    before?: string;
    /** 读此 guild id 之后的数据	after 和 before 同时设置时， after 参数无效 */
    after?: string;
    /** 每次拉取多少条数据	默认 100, 最大 100 */
    limit?: number;
}
declare const _default: (request: Request) => {
    /**
     * 单独发送消息给用户。
     */
    sendUserMessage(openid: string, params: SendUserMessageParams): Promise<Result<UserMessage>>;
    /**
     * 用于撤回机器人发送给当前用户的消息
     */
    recallUserMessage(openid: string, message_id: string): Promise<Result>;
    /**
     * 单独发送富媒体消息给用户。
     */
    sendUserFile(openid: string, params: SendUserMessageFileParams): Promise<Result<UserFile>>;
    /**
     * 获取当前机器人详情。
     */
    getUserInfo(): Promise<Result<User>>;
    /**
     * 获取用户频道列表。
     */
    getUserGuilds(params: GetUserGuildsParams): Promise<Result<Guild[]>>;
};
export default _default;
