import { OnChanges, AfterContentInit, EventEmitter, ElementRef, Renderer2, ChangeDetectorRef, OnDestroy } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { Grid } from '../../lib/grid';
import { TbodyCollapseContentDirective } from './tbody-collapse-content.directive';
import { Row } from '../../../../lib/table/lib/data-set/row';
export declare class Ng2SmartTableTbodyComponent implements OnChanges, AfterContentInit, OnDestroy {
    private element;
    private renderer;
    private cdr;
    editingFormGroup: FormGroup;
    grid: Grid;
    deleteConfirm: EventEmitter<any>;
    editConfirm: EventEmitter<any>;
    rowClassFunction: Function;
    collapseTableContent: TbodyCollapseContentDirective;
    updateColumnList: any;
    cancelEdit: EventEmitter<any>;
    userRowSelect: EventEmitter<any>;
    save: EventEmitter<any>;
    cancel: EventEmitter<any>;
    edit: EventEmitter<any>;
    editSave: EventEmitter<any>;
    delete: EventEmitter<any>;
    rowActionCustomEvent: EventEmitter<any>;
    rowActionDownloadCustomEvent: EventEmitter<any>;
    edited: EventEmitter<any>;
    userSelectRow: EventEmitter<any>;
    editRowSelect: EventEmitter<any>;
    multipleSelectRow: EventEmitter<any>;
    rowHover: EventEmitter<any>;
    selectedElem: EventEmitter<any>;
    tableBody: HTMLElement;
    actionIcons: any[];
    colorRow: boolean;
    isMultiSelectVisible: boolean;
    showActionColumnRight: boolean;
    mode: string;
    editInputClass: string;
    isActionAdd: boolean;
    isActionEdit: boolean;
    isActionDelete: boolean;
    tableCollapsible: any;
    rowsCollapsible: boolean[];
    noDataMessage: boolean;
    getExtraColumn: number;
    private subscription$;
    constructor(element: ElementRef, renderer: Renderer2, cdr: ChangeDetectorRef);
    ngAfterContentInit(): void;
    ngOnChanges(): void;
    ngOnDestroy(): void;
    onRowHover(row: Row): void;
    onRowHoverEnter(rowObj: Row): boolean;
    onRowHoverLeave(rowObj: Row): boolean;
    getThisRowActionIcons(row: any): any;
    /**
     * Check if ANY row is being edited.
     */
    rowEditing(): boolean;
    rowCollapsed(evt: Event, row: Row): void;
    collapseRow(row: Row): void;
    /**
     * This method emit the row to instalation and expand the row.
     *
     * @param row - The row to be edited.
     */
    onEditRowCollappsed(row: Row): void;
    /**
     * This method close the expanded row.
     *
     * @param row - The row where cancel accours.
     */
    onEditCancel(row: Row): void;
    /**
     * This method count how many rows are collapsed before row index.
     * It's necessary to hovering the correct row.
     *
     * @param rowIdx - The index of the row.
     */
    howManyItemsAreOpenBeforeMe(rowIdx: number): number;
    onSelectRow(row: Row, evt: Event): void;
}
