export type CatalogChunkPlaybackMode = "exact-word" | "anchor-span" | "region-fallback";
export type BoundaryOffsetMode = "plain-spoken-text" | "raw-ssml" | "unsupported";
export interface CatalogTextToken {
    text: string;
    normalized: string;
    start: number;
    end: number;
}
export interface CatalogSpanAnchor {
    spokenStart: number;
    spokenEnd: number;
    visibleStart: number;
    visibleEnd: number;
    score: number;
}
export interface CatalogSpanAlignment {
    speechText: string;
    spokenText: string;
    visibleText: string;
    playbackMode: CatalogChunkPlaybackMode;
    boundaryOffsetMode: BoundaryOffsetMode;
    anchors: CatalogSpanAnchor[];
    confidence: number;
    spokenTokens: CatalogTextToken[];
    visibleTokens: CatalogTextToken[];
    rawToSpokenOffsetMap: Map<number, number>;
}
export declare const createCatalogSpanAlignment: (args: {
    speechText: string;
    visibleText: string;
}) => CatalogSpanAlignment;
export declare const resolveSpokenBoundaryOffset: (alignment: CatalogSpanAlignment, position: number, length?: number, boundaryWord?: string) => {
    start: number;
    length: number;
} | null;
export declare const resolveVisibleSpanForBoundary: (alignment: CatalogSpanAlignment, spokenOffset: number) => {
    start: number;
    end: number;
} | null;
