import { IGcRect } from "../Models/GcMeasurementTypes";
import { ICustomHighlight } from "./types";
/**
 * Represents a custom highlight with configurable properties and rendering capabilities.
 * Implements the `ICustomHighlight` interface.
 */
export declare class CustomHighlight implements ICustomHighlight {
    protected _rects: (IGcRect | number[])[];
    private _convertedMatches;
    searcher: any;
    private _pageIndex;
    /**
     * Gets the rectangles that define the highlight area.
     * @returns {IGcRect[]} An array of rectangles that represent the highlighted area.
     */
    get rects(): (IGcRect | number[])[];
    /**
     * The fill color of the highlight in `rgba`, `hex`, or named color format.
     */
    color?: string;
    /**
     * The color of the highlight border in `rgba`, `hex`, or named color format.
     */
    borderColor?: string;
    /**
     * The width of the highlight border in pixels.
     * @default 2
     */
    borderWidth?: number;
    /**
     * The text content associated with the highlight.
     */
    text?: string;
    /**
     * A custom function to handle the painting of the highlight.
     * @param {CanvasRenderingContext2D} ctx - The rendering context of the canvas to draw on.
     * @param {ICustomHighlight} highlight - The highlight object containing details for painting.
     */
    paintHandler?: (ctx: CanvasRenderingContext2D, highlight: ICustomHighlight) => void;
    /**
     * Creates an instance of CustomHighlight.
     * @param {IGcRect | IGcRect[] | any} rects - The rectangles or other data defining the highlight.
     * @param {("convertedMatches" | "searchResult")} [argType] - Type of the data provided.
     * @param {any} [searcher] - The searcher object used if `argType` is "convertedMatches".
     * @param {number} [pageIndex] - The index of the page used if `argType` is "convertedMatches".
     */
    constructor(rects: IGcRect | (IGcRect | number[])[] | any, argType?: "convertedMatches" | "searchResult", searcher?: any, pageIndex?: number);
}
