export type EventBus = import("./event_utils").EventBus;
export type PDFFindController = import("./pdf_find_controller").PDFFindController;
export type TextHighlighterOptions = {
findController: PDFFindController;
/**
* - The application event bus.
*/
eventBus: EventBus;
/**
* - The page index.
*/
pageIndex: number;
};
/** @typedef {import("./event_utils").EventBus} EventBus */
/** @typedef {import("./pdf_find_controller").PDFFindController} PDFFindController */
/**
* @typedef {Object} TextHighlighterOptions
* @property {PDFFindController} findController
* @property {EventBus} eventBus - The application event bus.
* @property {number} pageIndex - The page index.
*/
/**
* TextHighlighter handles highlighting matches from the FindController in
* either the text layer or XFA layer depending on the type of document.
*/
export class TextHighlighter {
/**
* @param {TextHighlighterOptions} options
*/
constructor({ findController, eventBus, pageIndex }: TextHighlighterOptions);
findController: import("./pdf_find_controller").PDFFindController;
matches: any[];
eventBus: import("./event_utils").EventBus;
pageIdx: number;
_onUpdateTextLayerMatches: ((evt: any) => void) | null;
textDivs: Node[] | null;
textContentItemsStr: string[] | null;
enabled: boolean;
/**
* Store two arrays that will map DOM nodes to text they should contain.
* The arrays should be of equal length and the array element at each index
* should correspond to the other. e.g.
* `items[0] = "Item 0" and texts[0] = "Item 0";
*
* @param {Array} divs
* @param {Array} texts
*/
setTextMapping(divs: Array, texts: Array): void;
/**
* Start listening for events to update the highlighter and check if there are
* any current matches that need be highlighted.
*/
enable(): void;
disable(): void;
_convertMatches(matches: any, matchesLength: any): {
begin: {
divIdx: number;
offset: number;
};
}[];
_renderMatches(matches: any): void;
_updateMatches(): void;
}