/**
 * Pure renderer for forwarded message trees.
 *
 * Input is a tree of ForwardedNode (built in daemon.ts by walking Lark's
 * im.message.get response). Output is an XML block with deduplicated
 * participants — each unique sender appears once in <participants>, then
 * messages reference them by short alias (A, B, C...) saving tokens vs.
 * the previous `--- ${open_id} ---` per-line format.
 */
export interface ForwardedNode {
    /** open_id of the sender (for both user and app types). May be empty if Lark omits it. */
    senderOpenId: string;
    senderType: 'user' | 'app' | 'unknown';
    /** Optional human-readable name (resolved when sender is one of our bots / chat-mate bots). */
    senderName?: string;
    /** Leaf message text content — present when this is not a nested merged-forward wrapper. */
    content?: string;
    /** Children — present when this node IS a nested merged-forward, replacing `content`. */
    children?: ForwardedNode[];
}
/** Render a forwarded message tree as a single XML block. */
export declare function renderForwardedXml(nodes: ForwardedNode[]): string;
//# sourceMappingURL=forwarded-renderer.d.ts.map