/** * Bidi reordering * Port of bidi-js reordering.js */ import type { EmbeddingLevelsResult } from "./embedding-levels.ts"; /** * Given a start and end denoting a single line within a string, and a set of precalculated * bidi embedding levels, produce a list of segments whose ordering should be flipped, in sequence. * @param string Text string to process * @param embeddingLevelsResult Result from getEmbeddingLevels * @param start Start index (defaults to 0) * @param end End index (defaults to string length - 1) * @returns Array of segment ranges [start, end] to be reversed */ export declare function getReorderSegments(string: string, embeddingLevelsResult: EmbeddingLevelsResult, start?: number, end?: number): Array<[number, number]>; /** * Get the reordered string with bidi segments reversed * @param string Text string to reorder * @param embedLevelsResult Result from getEmbeddingLevels * @param start Start index (defaults to 0) * @param end End index (defaults to string length - 1) * @returns Reordered string with BiDi applied */ export declare function getReorderedString(string: string, embedLevelsResult: EmbeddingLevelsResult, start?: number, end?: number): string; /** * Get an array with character indices in their new bidi order * @param string Text string to process * @param embedLevelsResult Result from getEmbeddingLevels * @param start Start index (defaults to 0) * @param end End index (defaults to string length - 1) * @returns Array mapping new positions to original character indices */ export declare function getReorderedIndices(string: string, embedLevelsResult: EmbeddingLevelsResult, start?: number, end?: number): number[];