import type { TextProcessingOptions } from "../../text-processing.js";
import { type MathSpeechResolver } from "../assemble-plan.js";
import type { SREMathSpeechOptions } from "../../math-speech.js";
import type { GeneratedSpeechPlan } from "../types.js";
import type { DomAnchor } from "./types.js";
export interface BuildGeneratedSpeechResult {
    plan: GeneratedSpeechPlan<DomAnchor>;
    containsMathMarkup: boolean;
    /** Aggregate visible text from the DOM walk (may be empty). */
    visibleText: string;
}
/**
 * DOM adapter: walk a live content root, assemble the (pure) speech plan, and
 * bind each segment to its live-DOM anchor. This is the only generated-speech
 * entry point that touches the DOM; assembly and serialization stay pure.
 */
export declare const buildGeneratedSpeechFromRoot: (args: {
    contentRoot: Element;
    language?: string;
    mathSpeech?: SREMathSpeechOptions;
    textProcessingOptions?: TextProcessingOptions;
    /** Request SRE SSML per equation (for the SSML playback format). */
    produceSsml?: boolean;
    resolveMathSpeech?: MathSpeechResolver;
}) => Promise<BuildGeneratedSpeechResult>;
