import type { MathAwareSpeechChunk } from "../math-aware-text-processing.js";
import { type ResolvedMathSpeech, type SREMathSpeechOptions } from "../math-speech.js";
import type { AssembledSpeech } from "./types.js";
type MathChunk = Extract<MathAwareSpeechChunk, {
    type: "math";
}>;
/**
 * Resolves spoken text for a single math chunk. Injectable so the runtime can
 * supply a memoized resolver (deterministic caching) and tests can stub SRE.
 * Mirrors `resolveMathSpeechFromChunks([chunk], options)`.
 */
export type MathSpeechResolver = (chunk: MathChunk, options: {
    language?: string;
    produceSsml?: boolean;
    mathSpeech?: SREMathSpeechOptions;
}) => Promise<ResolvedMathSpeech>;
/**
 * Assemble an anchor-free speech plan from already-collected math-aware chunks.
 *
 * PURE: no DOM walking, no app-service imports. Preserves the spoken-text and
 * visible-span bookkeeping from the inline generated path, so the runtime output
 * is stable once serialized to plain text.
 */
export declare const assembleGeneratedSpeech: (args: {
    chunks: ReadonlyArray<MathAwareSpeechChunk>;
    visibleText: string;
    language?: string;
    mathSpeech?: SREMathSpeechOptions;
    /** Request SRE SSML per math equation (used by the SSML playback format). */
    produceSsml?: boolean;
    resolveMathSpeech?: MathSpeechResolver;
}) => Promise<AssembledSpeech>;
export {};
