import { BaseRet } from "../../../common/interface"; export declare namespace IMessage { interface Common { msgtype: "text" | "image" | "voice" | "file" | "textcard" | "news" | "mpnews" | "markdown" | "miniprogram_notice" | "taskcard" | "template_card"; agentid?: number; touser?: string; topart?: string; totag?: string; safe?: 0 | 1; enable_id_trans?: 0 | 1; enable_duplicate_check?: 0 | 1; duplicate_check_interval?: number; } export interface Text extends Common { msgtype: "text"; text: { content: string; }; } export interface Image extends Omit { msgtype: "image"; image: { media_id: string; }; } export interface Voice extends Omit { msgtype: "voice"; voice: { media_id: string; title?: string; description?: string; }; } export interface File extends Omit { msgtype: "file"; voice: { media_id: string; }; } export interface TextCard extends Common { msgtype: "textcard"; textcard: { title: string; description: string; url: string; btntxt?: string; }; enable_id_trans?: 0 | 1; } interface NewsArticleItem { title: string; url: string; description?: string; picurl?: string; } export interface News extends Common { msgtype: "news"; news: { articles: NewsArticleItem[]; }; } interface MPNewsArticleItem { title: string; thumb_media_id: string; content: string; author?: string; content_source_url?: string; digest?: string; } export interface MPNews extends Common { msgtype: "mpnews"; mpnews: { articles: MPNewsArticleItem[]; }; } export interface Markdown extends Omit { msgtype: "markdown"; markdown: { content: string; }; } export interface MiniProgramNotice extends Common { msgtype: "miniprogram_notice"; miniprogram_notice: { appid: string; title: "会议室预订成功通知"; page?: string; description?: string; emphasis_first_item?: boolean; content_item?: { key: string; value: string; }[]; }; } export interface TaskCard extends Common { msgtype: "taskcard"; taskcard: { title: string; description: string; task_id: string; url: string; btn: { key: string; name: string; replace_name?: string; color?: "red" | "blue"; is_bold?: boolean; }[]; }; } export namespace TemplateCard { interface CardCommon { source?: { icon_url?: string; desc?: string; desc_color?: number; }; action_menu?: { desc?: string; action_list: { text: string; key: string; }[]; }; main_title?: { title?: string; desc?: string; }; } export interface TemplateCardCommon extends Common { msgtype: "template_card"; template_card: CardCommon & T; } interface QuoteArea { type?: number; url?: string; appid?: string; pagepath?: string; title?: string; quote_text?: string; } interface HorizontalContentItem { type?: number; keyname: string; value?: string; url?: string; media_id?: string; userid?: string; } interface JumpListItem { type?: number; title: string; url?: string; appid?: string; pagepath?: string; } interface SubmitButton { text: string; key: string; } export interface TextNotice extends CardCommon { card_type: "text_notice"; quote_area?: QuoteArea; emphasis_content?: { title?: string; desc?: string; }; sub_title_text?: string; horizontal_content_list?: HorizontalContentItem[]; jump_list?: JumpListItem[]; card_action: { type: number; url?: string; appid?: string; pagepath?: string; }; task_id?: string; } export interface NewsNotice extends CardCommon { card_type: "news_notice"; quote_area?: QuoteArea; image_text_area?: { type?: number; url?: string; appid?: string; pagepath?: string; title?: string; desc?: string; image_url: string; }; card_image: { url: string; aspect_ratio?: number; }; vertical_content_list?: { title: string; desc?: string; }[]; horizontal_content_list?: HorizontalContentItem[]; jump_list?: JumpListItem[]; card_action: { type: number; url?: string; appid?: string; pagepath?: string; }; task_id?: string; } export interface ButtonInteraction extends CardCommon { card_type: "button_interaction"; quote_area?: QuoteArea; sub_title_text?: string; horizontal_content_list?: HorizontalContentItem[]; card_action?: { type?: number; url?: string; appid?: string; pagepath?: string; }; task_id: string; button_selection: { question_key: string; title?: string; option_list: { id: string; text: string; }; selected_id: string; }; button_list: { type?: number; text: string; style?: string; key?: string; url?: string; }[]; } export interface VoteInteraction extends CardCommon { card_type: "vote_interaction"; task_id: string; checkbox?: { question_key: string; mode: number; option_list: { id: number; text: string; is_checked: boolean; }[]; }; submit_button?: { text: string; key: string; }; } export interface MultipleInteraction extends CardCommon { card_type: "multiple_interaction"; task_id: string; select_list: { question_key: string; title?: number; option_list: { id: number; text: string; }[]; selected_id?: string; }[]; submit_button: SubmitButton; } export {}; } export {}; } export interface IMessageRet extends BaseRet { invaliduser?: string; invalidparty?: string; invalidtag?: string; }