import type { DictEntry, TranscribedSegment } from "../types";
export * from "./prop_trie";
export * from "./word_split_possibilities";
export declare function compare(a: string | number, b: string | number): 0 | 1 | -1;
export declare function reverseCompare(a: string | number, b: string | number): 0 | 1 | -1;
export declare function getPropComparer
(prop: P, comp?: (a: V, b: V) => number): (a: {
[prop in P]: V;
}, b: {
[prop in P]: V;
}) => number;
export declare function sortByFunc(array: T[], keyFunc: (item: T) => string | number): T[];
export declare function multiSubst(str: string, map: Record): string;
/**
* @param arr An array of objects sorted by `prop`.
* @param prop The property to look in.
* @param search The string to search for.
* @returns An array of objects from `arr` whose `prop` are equal to `search`.
*/
export declare function bisectLookUp(arr: readonly O[], prop: P, search: string): O[];
/**
* Test if one of the given hanzi hints (./data.json.d.ts:`DictEntry.hh`) match the current character.
* @param input The input string.
* @param i The position of the current character in `input`.
* @param char The current character.
* @param hh Hanzi hints.
* @returns True if one of the hints match the current character, false otherwise.
*/
export declare function hhMatches(input: string, i: number, char: string, hh: string): boolean;
export declare function escapeRegExp(source: string): string;
export declare function lazyMap(iterable: Iterable, fn: (value: T) => U): Generator;
export declare function makeTranscribedSegment(seg: DictEntry, vType: "h" | "x"): TranscribedSegment;