/** * A2A headers encoding/decoding for email body * * Supports embedding A2A metadata in HTML comments (legacy) or * CSS hidden span (new format) when real email headers are not available. */ import type { EmailLogger } from "../utils/logger.js"; /** * A2A headers extracted from body */ export interface A2ABodyHeaders { /** Agent identifier */ agent: string | null; /** Turn number */ turn: number; } /** * Check if body content is HTML format * @param body - Email body content * @returns true if body contains HTML tags */ export declare function isHtmlBody(body: string): boolean; /** * Extract A2A headers from CSS hidden span (new format) * Format: {"__oc":1,"agent":"...","turn":N} */ export declare function extractA2AFromHiddenSpan(body: string): A2ABodyHeaders; /** * Inject A2A metadata as CSS hidden span appended to HTML body (new format) * Used by WS transport where real email headers are not available. */ export declare function injectA2AAsHiddenSpan(body: string, agent: string, turn: number, log?: EmailLogger): string; /** * Extract A2A headers from HTML body comments (legacy format) * @param body - Email body (HTML or plain text) * @returns Extracted A2A headers */ export declare function extractA2AFromHtmlBody(body: string): A2ABodyHeaders; /** * Remove existing A2A comments from body * @param body - HTML body content * @returns Body with A2A comments removed */ export declare function stripExistingA2AComments(body: string): string; /** * Strip all A2A metadata from HTML before Markdown conversion. * Removes hidden span (new format) and HTML comments (legacy format). * Use this before passing HTML to turndown so A2A metadata is not visible to AI. * @param html - Raw HTML content (does NOT mutate the original) * @returns HTML with all A2A metadata removed */ export declare function stripA2AFromHtml(html: string): string; /** * Inject A2A headers into HTML body as comments * @param body - Original email body * @param agent - Agent identifier * @param turn - Turn number * @param log - Optional logger * @returns Body with A2A comments injected */ export declare function injectA2AIntoHtmlBody(body: string, agent: string, turn: number, log?: EmailLogger): string;