import { IRenderer, IGrid, NotifyArgs, IModelGenerator } from '../base/interface';
import { VirtualInfo } from '../base/interface';
import { Column } from '../models/column';
import { Row } from '../models/row';
import { ServiceLocator } from '../services/service-locator';
/**
 * Content module is used to render grid content
 *
 * @hidden
 */
export declare class ContentRender implements IRenderer {
    private contentTable;
    private contentPanel;
    private widthService;
    protected rows: Row<Column>[];
    protected freezeRows: Row<Column>[];
    protected movableRows: Row<Column>[];
    protected rowElements: Element[];
    protected freezeRowElements: Element[];
    /** @hidden */
    prevInfo: VirtualInfo;
    /** @hidden */
    currentInfo: VirtualInfo;
    /** @hidden */
    prevCurrentView: Object[];
    colgroup: Element;
    protected isLoaded: boolean;
    protected tbody: HTMLElement;
    private droppable;
    private drop;
    /** @hidden */
    infiniteCache: {
        [x: number]: Row<Column>[];
    } | {
        [x: number]: Row<Column>[][];
    };
    private pressedKey;
    /** @hidden */
    visibleRows: Row<Column>[];
    private visibleFrozenRows;
    protected rightFreezeRows: Row<Column>[];
    private isAddRows;
    private currentMovableRows;
    private initialPageRecords;
    private isInfiniteFreeze;
    private useGroupCache;
    /** @hidden */
    tempFreezeRows: Row<Column>[];
    private rafCallback;
    protected parent: IGrid;
    private serviceLocator;
    private ariaService;
    protected generator: IModelGenerator<Column>;
    /**
     * Constructor for content renderer module
     *
     * @param {IGrid} parent - specifies the Igrid
     * @param {ServiceLocator} serviceLocator - specifies the service locator
     */
    constructor(parent?: IGrid, serviceLocator?: ServiceLocator);
    private beforeCellFocused;
    /**
     * The function is used to render grid content div
     *
     * @returns {void}
     */
    renderPanel(): void;
    protected renderHorizontalScrollbar(element?: Element): void;
    private setScrollbarHeight;
    /**
     * The function is used to render grid content table
     *
     * @returns {void}
     */
    renderTable(): void;
    /**
     * The function is used to create content table elements
     *
     * @param {string} id - specifies the id
     * @returns {Element} returns the element
     * @hidden
     */
    createContentTable(id: string): Element;
    /**
     * Refresh the content of the Grid.
     *
     * @param {NotifyArgs} args - specifies the args
     * @returns {void}
     */
    refreshContentRows(args?: NotifyArgs): void;
    protected isInfiniteColumnvirtualization(): boolean;
    protected enableCacheOnInfiniteColumnVirtual(): boolean;
    emptyVcRows(): void;
    appendContent(tbody: Element, frag: DocumentFragment, args: NotifyArgs, tableName?: string): void;
    private setRowsInLazyGroup;
    private setGroupCache;
    private ensureFrozenHeaderRender;
    private ensureVirtualFrozenHeaderRender;
    private checkCache;
    private setInfiniteVisibleRows;
    private getCurrentBlockInfiniteRecords;
    private getReorderedRows;
    private virtualFrozenHdrRefresh;
    protected getInfiniteRows(): Row<Column>[];
    private getInfiniteMovableRows;
    /**
     * Get the content div element of grid
     *
     * @returns {Element} returns the element
     */
    getPanel(): Element;
    /**
     * Set the content div element of grid
     *
     * @param  {Element} panel - specifies the panel
     * @returns {void}
     */
    setPanel(panel: Element): void;
    /**
     * Get the content table element of grid
     *
     * @returns {Element} returns the element
     */
    getTable(): Element;
    /**
     * Set the content table element of grid
     *
     * @param  {Element} table - specifies the table
     * @returns {void}
     */
    setTable(table: Element): void;
    /**
     * Get the Movable Row collection in the Freeze pane Grid.
     *
     * @returns {Row[] | HTMLCollectionOf<HTMLTableRowElement>} returns the row
     */
    getRows(): Row<Column>[] | HTMLCollectionOf<HTMLTableRowElement>;
    /**
     * Get the content table data row elements
     *
     * @returns {Element} returns the element
     */
    getRowElements(): Element[];
    /**
     * Get the content table data row elements
     *
     * @param {Element[]} elements - specifies the elements
     * @returns {void}
     */
    setRowElements(elements: Element[]): void;
    /**
     * Get the header colgroup element
     *
     * @returns {Element} returns the element
     */
    getColGroup(): Element;
    /**
     * Set the header colgroup element
     *
     * @param {Element} colGroup - specifies the colgroup
     * @returns {Element} returns the element
     */
    setColGroup(colGroup: Element): Element;
    /**
     * Function to hide content table column based on visible property
     *
     * @param {Column[]} columns - specifies the column
     * @returns {void}
     */
    setVisible(columns?: Column[]): void;
    /**
     * @param {Object} tr - specifies the trr
     * @param {number} idx - specifies the idx
     * @param {string} displayVal - specifies the displayval
     * @param {Row<Column>} rows - specifies the rows
     * @returns {void}
     * @hidden
     */
    setDisplayNone(tr: Object, idx: number, displayVal: string, rows: Row<Column>[]): void;
    private infiniteRowVisibility;
    private colGroupRefresh;
    protected getHeaderColGroup(): Element;
    private initializeContentDrop;
    private droppableDestroy;
    private canSkip;
    getModelGenerator(): IModelGenerator<Column>;
    renderEmpty(tbody: HTMLElement): void;
    setSelection(uid: string, set: boolean, clearAll?: boolean): void;
    getRowByIndex(index: number): Element;
    private getInfiniteRowIndex;
    getVirtualRowIndex(index: number): number;
    private enableAfterRender;
    setRowObjects(rows: Row<Column>[]): void;
    /**
     * @param {NotifyArgs} args - specifies the args
     * @returns {void}
     * @hidden
     */
    immutableModeRendering(args?: NotifyArgs): void;
    private objectEqualityChecker;
    private getBatchEditedRecords;
    private refreshImmutableContent;
    private updateCellIndex;
}
