import { type ReactiveController } from 'lit';
import type IgcHighlightComponent from './highlight.js';
/**
 * Options for controlling navigation behavior when moving the active highlight.
 */
export type HighlightNavigation = {
    /** If true, prevents the component from scrolling the new active match into view. */
    preventScroll?: boolean;
};
declare class HighlightService implements ReactiveController {
    private readonly _host;
    private readonly _id;
    private readonly _activeId;
    private readonly _styles;
    private readonly _styleSheet?;
    private _highlight;
    private _activeHighlight;
    private _ranges;
    private _current;
    /**
     * The total number of matches found in the component's content.
     */
    get size(): number;
    /**
     * The index of the currently active match. Returns 0 if there are no matches.
     */
    get current(): number;
    constructor(host: IgcHighlightComponent);
    /** @internal */
    hostConnected(): void;
    /** @internal */
    hostDisconnected(): void;
    private _removeStyleSheet;
    private _createHighlightEntries;
    private _removeHighlightEntries;
    private _createRegex;
    private _updateActiveHighlight;
    private _goTo;
    /**
     * Attaches the service's stylesheet to the render root.
     * Necessary for the component to apply highlight styles to its content.
     */
    attachStylesheet(): void;
    /**
     * Finds matches for the given search text in the component's content and creates highlight ranges for them.
     */
    find(value: string): void;
    /** Moves the active state to the next match. */
    next(options?: HighlightNavigation): void;
    /** Moves the active state to the previous match. */
    previous(options?: HighlightNavigation): void;
    /** Moves the active state to the given index. */
    setActive(index: number, options?: HighlightNavigation): void;
    /** Clears highlight collections. */
    clear(): void;
}
export declare function createHighlightController(host: IgcHighlightComponent): HighlightService;
export {};
