import { AfterViewInit, ElementRef, OnChanges, OnDestroy, Renderer2, SimpleChanges } from '@angular/core';
export interface IActiveHighlightInfo {
    rowIndex: number;
    columnIndex: number;
    page: number;
    index: number;
}
export declare class IgxTextHighlightDirective implements AfterViewInit, OnDestroy, OnChanges {
    renderer: Renderer2;
    private static onActiveElementChanged;
    static highlightGroupsMap: Map<string, IActiveHighlightInfo>;
    private _lastSearchInfo;
    private _div;
    private _observer;
    private _nodeWasRemoved;
    private _forceEvaluation;
    private _activeElementIndex;
    /**
     * Determines the `CSS` class of the highlight elements.
     * This allows the developer to provide custom `CSS` to customize the highlight.
     *
     * ```html
     * <div
     *   igxTextHighlight
     *   [cssClass]="myClass">
     * </div>
     * ```
     */
    cssClass: string;
    /**
    * Determines the `CSS` class of the active highlight element.
    * This allows the developer to provide custom `CSS` to customize the highlight.
    *
    * ```html
    * <div
    *   igxTextHighlight
    *   [activeCssClass]="activeHighlightClass">
    * </div>
    * ```
    */
    activeCssClass: string;
    /**
     * @hidden
     */
    containerClass: string;
    /**
     * Identifies the highlight within a unique group.
     * This allows it to have several different highlight groups,
     * with each of them having their own active highlight.
     *
     * ```html
     * <div
     *   igxTextHighlight
     *   [groupName]="myGroupName">
     * </div>
     * ```
     */
    groupName: string;
    private _value;
    /**
     * The underlying value of the element that will be highlighted.
     *
     * ```typescript
     * // get
     * const elementValue = this.textHighlight.value;
     * ```
     *
     * ```html
     * <!--set-->
     * <div
     *   igxTextHighlight
     *   [value]="newValue">
     * </div>
     * ```
     */
    value: any;
    /**
     * The index of the row on which the directive is currently on.
     *
     * ```html
     * <div
     *   igxTextHighlight
     *   [row]="0">
     * </div>
     * ```
     */
    row: number;
    /**
     * The index of the column on which the directive is currently on.
     *
     * ```html
     * <div
     *   igxTextHighlight
     *   [column]="0">
     * </div>
     * ```
     */
    column: number;
    /**
     * The index of the page on which the directive is currently on.
     * It is used when the component containing the directive supports paging.
     *
     * ```html
     * <div
     *   igxTextHighlight
     *   [page]="0">
     * </div>
     * ```
     */
    page: number;
    /**
     * @hidden
     */
    parentElement: any;
    private _container;
    /**
     * Activates the highlight at a given index.
     * (if such index exists)
     */
    static setActiveHighlight(groupName: string, highlight: IActiveHighlightInfo): void;
    /**
     * Clears any existing highlight.
     */
    static clearActiveHighlight(groupName: any): void;
    constructor(element: ElementRef, renderer: Renderer2);
    /**
     * @hidden
     */
    ngOnDestroy(): void;
    /**
     * @hidden
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * @hidden
     */
    ngAfterViewInit(): void;
    /**
     * Clears the existing highlight and highlights the searched text.
     * Returns how many times the element contains the searched text.
     */
    highlight(text: string, caseSensitive?: boolean): number;
    /**
     * Clears any existing highlight.
     */
    clearHighlight(): void;
    /**
     * Activates the highlight if it is on the currently active row, column and page.
     */
    activateIfNecessary(): void;
    /**
     * Attaches a MutationObserver to the parentElement and watches for when the container element is removed/readded to the DOM.
     * Should be used only when necessary as using many observers may lead to performance degradation.
     */
    observe(): void;
    private activate(index);
    private deactivate();
    private clearChildElements(originalContentHidden);
    private getHighlightedText(searchText, caseSensitive);
    private appendText(text);
    private appendSpan(outerHTML);
    private appendDiv();
    private searchNeedsEvaluation(text, caseSensitive);
}
export declare class IgxTextHighlightModule {
}
