import { EventEmitter } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { LogService } from '@ironsource/fusion-ui/services/log';
import { TableColumn, TableOptions, TableRow, TableRowChangedData, TableRowMetaData, TableRowsExpandableOptions } from '@ironsource/fusion-ui/components/table/common/entities';
import { MenuDropItem } from '@ironsource/fusion-ui/components/menu-drop';
import { UniqueIdService } from '@ironsource/fusion-ui/services/unique-id';
import * as i0 from "@angular/core";
export declare class TableService {
    private sanitizer;
    private logService;
    private uniqueService;
    private selectedRows;
    selectionChanged: EventEmitter<any>;
    rowModelChange: EventEmitter<TableRowChangedData>;
    rowActionClicked: EventEmitter<{
        action: MenuDropItem;
        rowIndex: string | number;
        row: TableRow;
    }>;
    expandLevels: number;
    hasRowspanRows: boolean;
    rowsExpandableKey: string;
    rowsMetadata: {
        [rowId: string]: TableRowMetaData;
    };
    constructor(sanitizer: DomSanitizer, logService: LogService, uniqueService: UniqueIdService);
    onRowsSelectChanged(isGroupedTable: any, rows: any, isChecked: boolean): void;
    onRowSelectChanged(isChecked: boolean, row: any): void;
    removeRow({ rows, rowIndex, row, options }: {
        rows?: any;
        rowIndex?: number;
        row?: any;
        options?: TableOptions;
    }): void;
    initSelectedRows(rows: any[]): void;
    setRowsMetadata(rows: any[]): any[];
    clearSelectedRows(): void;
    replaceSelectedRows({ selectedTableRows, iditicationFunc }: {
        selectedTableRows: any[];
        iditicationFunc: (row: any) => number;
    }): void;
    isAllRowsSelected(rows: any): boolean;
    isPartialSelected(rows: any): boolean;
    getColumnStyle(col: any): any;
    getColumnClasses(col: any, isHeader?: boolean): string[];
    isRowSelected(row: any): boolean;
    isColumnSortable(col: any): boolean;
    isTableEmpty(rows: any, isGroupedTable: any, hasTotalRow?: boolean): boolean;
    isTypeComponent(column: any): boolean;
    isTypeString(column: any): boolean;
    isTypeCurrency(column: any): boolean;
    isTypeNumber(column: any): boolean;
    isTypePercent(column: any): boolean;
    isTypeDate(column: any): boolean;
    isTypeCheckbox(column: any): boolean;
    isTypeToggleButton(column: any): boolean;
    isTypeInputEdit(column: any): boolean;
    isInTotalTypeString(column: any): boolean;
    isRemove(isLast: boolean, tableOptions: TableOptions, rowOptions?: any): boolean;
    setWidth(isLast: boolean, width: string): string;
    getWidth(columns: any, column: any): any;
    getHeaderStickyClass(col: TableColumn): string;
    setExpandLevelByExpandOptions(expandOptions: TableRowsExpandableOptions): void;
    getExpandLevelByRowIndex(rowIndex: number | string): number;
    isRowReadOnly(row: any): boolean;
    toggleRowInRequest(row: any, isInRequest: any): void;
    setRowspanColumnsData(rows: any[], columnsKeys: string[]): void;
    getRowspanColumnsData(row: any): {
        [key: string]: number;
    };
    getMaxRowspanInColumn(row: any): number;
    private getRowspanColumns;
    private setRowSelectionState;
    private isInSelected;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TableService>;
}
