import { IRenderer, IGrid } from '../base/interface';
import { ServiceLocator } from '../services/service-locator';
import { ContentRender } from './content-renderer';
import { Row } from '../models/row';
import { Column } from '../models/column';
/**
 * GroupLazyLoadRenderer is used to perform lazy load grouping
 *
 * @hidden
 */
export declare class GroupLazyLoadRenderer extends ContentRender implements IRenderer {
    private locator;
    private groupGenerator;
    private summaryModelGen;
    private captionModelGen;
    private rowRenderer;
    constructor(parent: IGrid, locator?: ServiceLocator);
    private childCount;
    private scrollData;
    private rowIndex;
    private rowObjectIndex;
    private isFirstChildRow;
    private isScrollDown;
    private isScrollUp;
    private uid1;
    private uid2;
    private uid3;
    private blockSize;
    private groupCache;
    private cacheRowsObj;
    private startIndexes;
    private captionCounts;
    private rowsByUid;
    private objIdxByUid;
    private initialGroupCaptions;
    private requestType;
    private scrollTopCache;
    /** @hidden */
    refRowsObj: {
        [x: number]: Row<Column>[];
    };
    /** @hidden */
    pageSize: number;
    /** @hidden */
    cacheMode: boolean;
    /** @hidden */
    cacheBlockSize: number;
    /** @hidden */
    ignoreAccent: boolean;
    /** @hidden */
    allowCaseSensitive: boolean;
    /** @hidden */
    lazyLoadQuery: Object[];
    private startIndex;
    private eventListener;
    /**
     * @param {HTMLTableRowElement} tr - specifies the table row element
     * @returns {void}
     * @hidden
     */
    captionExpand(tr: HTMLTableRowElement): void;
    /**
     * @param {HTMLTableRowElement} tr - specifies the table row element
     * @returns {void}
     * @hidden
     */
    captionCollapse(tr: HTMLTableRowElement): void;
    /**
     * @returns {void}
     * @hidden */
    setLazyLoadPageSize(): void;
    /**
     * @returns {void}
     * @hidden */
    clearLazyGroupCache(): void;
    private clearCache;
    private refreshCaches;
    private getInitialCaptionIndexes;
    /**
     * @param {string} uid - specifies the uid
     * @returns {number} returns the row object uid
     * @hidden
     */
    getRowObjectIndexByUid(uid: string): number;
    private collapseShortcut;
    private getRowByUid;
    private actionBegin;
    private actionComplete;
    private resetRowMaintenance;
    private moveCells;
    private removeRows;
    private addClass;
    private getNextChilds;
    private lazyLoadHandler;
    private setRowIndexes;
    private getStartIndex;
    private prevCaptionCount;
    private setStartIndexes;
    private hasLastChildRow;
    private refreshCaptionRowCount;
    private render;
    /**
     * @param {Row<Column>} row - specifies the row
     * @param {number} index - specifies the index
     * @returns {void}
     * @hidden
     */
    maintainRows(row: Row<Column>, index?: number): void;
    private confirmRowRendering;
    private refreshRowObjects;
    private getAggregateByCaptionIndex;
    private getChildRowsByParentIndex;
    /**
     * @param {boolean} isReorder - specifies the isreorder
     * @returns {Row<Column>[]} returns the row
     * @hidden
     */
    initialGroupRows(isReorder?: boolean): Row<Column>[];
    /**
     * @returns {Row<Column>[]} retruns the row
     * @hidden */
    getRenderedRowsObject(): Row<Column>[];
    private getCacheRowsOnDownScroll;
    private getCacheRowsOnUpScroll;
    private scrollHandler;
    private scrollUpEndRowHandler;
    private scrollDownHandler;
    private getCurrentBlockEndIndex;
    private removeBlock;
    private scrollUpHandler;
    private findRowElements;
    private getRowElementByUid;
    private removeTopRows;
    private removeBottomRows;
    private setCache;
    private captionRowExpand;
    private scrollReset;
    private updateCurrentViewData;
    /**
     * @returns {Row<Column>[]} returns the row
     * @hidden */
    getGroupCache(): {
        [x: number]: Row<Column>[];
    };
    /**
     * @returns {Row<Column>[]} returns the row
     * @hidden */
    getRows(): Row<Column>[];
    /**
     * @returns {Element} returns the element
     * @hidden */
    getRowElements(): Element[];
    /**
     * @param {number} index - specifies the index
     * @returns {Element} returns the element
     * @hidden
     */
    getRowByIndex(index: number): Element;
    /**
     * Tucntion to set the column visibility
     *
     * @param {Column[]} columns - specifies the column
     * @returns {void}
     * @hidden
     */
    setVisible(columns?: Column[]): void;
    /**
     * Function to set display.
     *
     * @param {Object} tr - specifies the row object
     * @param {number} idx - specifies the index
     * @param {string} displayVal - specifies the display value
     * @param {Row<Column>[]} rows - specifies the array of rows
     * @param {number} oriIdx - specifies the index
     * @returns {void}
     * @hidden
     */
    setDisplayNone(tr: Object, idx: number, displayVal: string, rows: Row<Column>[], oriIdx?: number): void;
    private changeCaptionRow;
    private showAndHideCells;
    /**
     * Gets all data from data rows across all cached pages
     *
     * @returns {Object[]} All data from cached pages
     * @hidden
     */
    getAllPagesData(): Object[];
}
