/** * Parsing inbound Feishu message content. * * Feishu delivers `message.content` as a JSON-encoded string whose shape * depends on `message_type`. Every type flattens to one body: text in Feishu's * own vocabulary — mention placeholders and resource keys left where they * were — beside the list of resources those keys name. The channel layer * resolves both against the message's `mentions` records and its own * attachment downloads when it renders. */ import type { Mention } from './mentions.js'; import { type ParsedInbound } from './body.js'; export type { InboundResource, InboundResourceType, ParsedInbound, } from './body.js'; /** The subset of an inbound Feishu message this module reads. */ export interface InboundMessage { message_type?: string; /** JSON-encoded content string, as delivered by Feishu. */ content?: string; mentions?: Mention[] | undefined; } /** * Parse one inbound Feishu message into its body. Never throws — content the * platform did not encode as JSON becomes a marked, incomplete body so the * message still reaches the engine. */ export declare function parseInbound(message: InboundMessage): ParsedInbound; /** * Extract canonical, narrow metadata from a Feishu inbound event envelope. * * Content parsing only sees `message.content`; identifiers such as * `message_id`, `chat_id`, and `sender_id` live in the event envelope. Keeping * this Feishu-specific field mapping here keeps the host adapter free of * platform field names. */ export declare function narrowMetaFromEvent(rawEvent: unknown): Record; //# sourceMappingURL=content.d.ts.map