import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { BehaviorSubject } from 'rxjs';
import { MenuDropItem } from '@ironsource/fusion-ui/components/menu-drop';
import { TableService } from '@ironsource/fusion-ui/components/table/common/services';
import { TableColumn, TableIconsConfigByStyle, TableOptions, TableRow, TableRowExpandEmitter, TableRowsGrouped } from '@ironsource/fusion-ui/components/table/common/entities';
import { TestIdsService } from '@ironsource/fusion-ui/services/test-ids';
import { TableTestIdModifiers } from '@ironsource/fusion-ui/entities';
import { TableBasicComponent } from './components/table-basic/table-basic.component';
import * as i0 from "@angular/core";
export declare class TableV4Component implements OnInit, OnDestroy, AfterViewInit {
    /** @internal */
    tableService: TableService;
    /** @internal */
    isRowsInit: boolean;
    /** @internal */
    noDataMessage: string;
    /** @internal */
    noDataSubMessage: string;
    /** @internal */
    hideHeaderOnEmpty: boolean;
    /** @internal */
    isAllRowsSelectable: boolean;
    /** @internal */
    configIconNames: TableIconsConfigByStyle;
    /** @internal */
    wrapperClasses: string[];
    /** @internal */
    tableMainError: boolean;
    /** @internal */
    shownGoTopButton$: BehaviorSubject<boolean>;
    /** @internal */
    subHeader: {
        name: string;
        colspan: number;
    }[];
    /** @internal */
    searchFormControl: FormControl<string>;
    /** @internal */
    iconArrowUp: string;
    /** @internal */
    iconArrowDown: string;
    /** @internal */
    iconTooltip: string;
    /** @internal */
    testIdsService: TestIdsService;
    /** @internal */
    tableTestIdModifiers: typeof TableTestIdModifiers;
    /** @internal */
    testId: string;
    private uniqueService;
    id: string;
    set options(value: TableOptions);
    get options(): TableOptions;
    private _options;
    set columns(value: TableColumn[]);
    get columns(): TableColumn[];
    private _columns;
    set rows(value: any[] | TableRowsGrouped);
    get rows(): any[] | TableRowsGrouped;
    private _rows;
    /** @internal */
    set expandedRows(value: {
        [key: string]: boolean;
    });
    get expandedRows(): {
        [key: string]: boolean;
    };
    private _expandedRows;
    loading: boolean;
    sortTableOnDataChanges: boolean;
    hasCustomHeader: boolean;
    hasCustomFooter: boolean;
    sortChanged: EventEmitter<any>;
    selectionChanged: EventEmitter<any>;
    rowModelChange: EventEmitter<import("@ironsource/fusion-ui/components/table/common/entities").TableRowChangedData>;
    rowClicked: EventEmitter<{
        $event: MouseEvent;
        rowIndex: string;
        rowEl: Element;
        rowData: any;
    }>;
    scrollDown: EventEmitter<any>;
    rowActionClicked: EventEmitter<{
        action: MenuDropItem;
        rowIndex: string | number;
        row: TableRow;
    }>;
    expandRow: EventEmitter<TableRowExpandEmitter>;
    expandedRowsChange: EventEmitter<{
        [key: string]: boolean;
    }>;
    /** @internal */
    stringCell: any;
    /** @internal */
    checkboxCell: any;
    /** @internal */
    templateCell: any;
    /** @internal */
    tableElement: ElementRef;
    /** @internal */
    tableWrapperElement: ElementRef;
    /** @internal */
    tableBodyComponent: TableBasicComponent;
    get isFixedHeader(): boolean;
    get noTableFrame(): boolean;
    get noTableFooter(): boolean;
    get isEmpty(): boolean;
    get isLoading(): boolean;
    isScrollRight: boolean;
    get onVerticalScroll(): boolean;
    get isCheckboxTitleShown(): boolean;
    get isLoadingOverlay(): boolean;
    get tableRows(): any[];
    get groupedTableRows(): TableRowsGrouped;
    get colsCount(): number;
    get scrollElement(): HTMLElement;
    private lastScrollLeftValue;
    private currentExpandedMap;
    private ignoredParentSelectorsRowClickEvent;
    private onDestroy$;
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngAfterViewInit(): void;
    /** @internal */
    onHeaderClicked(col: any): void;
    /** @internal */
    filterColumn(column: any, filterIn: any): void;
    /** @internal */
    replaceSelectedRows({ selectedTableRows, iditicationFunc }: {
        selectedTableRows: any[];
        iditicationFunc: (row: any) => number;
    }): void;
    /** @internal */
    doExpandRow({ rowIndex, row, isExpanded, successCallback, failedCallback, updateMap }: TableRowExpandEmitter): void;
    /** @internal */
    trackByFunc(index: any, column: any): any;
    /** @internal */
    getTableClientWidth(): number;
    /** @internal */
    onTableBodyClicked($event: MouseEvent): void;
    /** @internal */
    onClickReturnTop(): void;
    private initColumns;
    private initRows;
    private getSubHeaders;
    private doLocalSorting;
    private isElementChildOfSuppressed;
    private updateExpandedRowsMap;
    private onExternalExpandRowChanged;
    private callOnExpandRow;
    private getRowsToExpandToggle;
    private getWrapperClasses;
    private scrollListeners;
    private localSorting;
    private onScroll;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableV4Component, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TableV4Component, "fusion-table", never, { "testId": { "alias": "testId"; "required": false; }; "id": { "alias": "id"; "required": false; }; "options": { "alias": "options"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "expandedRows": { "alias": "expandedRows"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "sortTableOnDataChanges": { "alias": "sortTableOnDataChanges"; "required": false; }; "hasCustomHeader": { "alias": "hasCustomHeader"; "required": false; }; "hasCustomFooter": { "alias": "hasCustomFooter"; "required": false; }; }, { "sortChanged": "sortChanged"; "selectionChanged": "selectionChanged"; "rowModelChange": "rowModelChange"; "rowClicked": "rowClicked"; "scrollDown": "scrollDown"; "rowActionClicked": "rowActionClicked"; "expandRow": "expandRow"; "expandedRowsChange": "expandedRowsChange"; }, never, [".fu-table-header", ".fu-table-footer"], true, never>;
}
