import type { MathAwareSpeechChunk } from "./math-aware-text-processing.js";
interface SpeechRuleEngineApi {
    setupEngine?: (options: Record<string, unknown>) => Promise<void> | void;
    engineReady?: () => Promise<void>;
    toSpeech: (mathml: string) => string;
}
export interface ResolveMathSpeechOptions {
    language?: string;
    loadSre?: () => Promise<SpeechRuleEngineApi>;
    /**
     * Optional SRE configuration supplied by the host. This deliberately exposes
     * SRE's own knobs instead of adding toolkit speech rewrites.
     */
    mathSpeech?: SREMathSpeechOptions;
    /**
     * Also produce SRE's SSML rendering (markup: "ssml") for the equation, for
     * the runtime generated-SSML path (PIE-623). Only populated when the input
     * is a single math chunk and SRE succeeds. The plain `speechText` is always
     * computed with markup: "none" so the plain path is unaffected.
     */
    produceSsml?: boolean;
}
export interface SREMathSpeechOptions {
    /** SRE domain, e.g. "clearspeak" or "mathspeak". Defaults by locale. */
    domain?: string;
    /** Raw SRE style/preference string. ClearSpeak preferences are ":"-joined. */
    style?: string;
    /** Extra SRE setupEngine options for hosts that need a newly exposed SRE knob. */
    engineOptions?: Record<string, unknown>;
}
export interface ResolvedMathSpeech {
    speechText: string;
    usedMathSpeech: boolean;
    usedFallback: boolean;
    /**
     * SRE SSML rendering of the equation (a self-contained `<speak>` document),
     * present only when `produceSsml` was requested for a single math chunk and
     * SRE produced trackable SSML.
     */
    ssml?: string;
}
export declare const normalizeSREMathSpeechOptions: (options: unknown) => SREMathSpeechOptions | undefined;
export declare const resolveMathSpeechFromChunks: (chunks: MathAwareSpeechChunk[], options?: ResolveMathSpeechOptions) => Promise<ResolvedMathSpeech>;
export {};
