import { TableMultipleActions, TableRowRemoveAction } from './table-row-remove-action';
import { TableColumn } from './table-column';
import { DynamicComponentConfiguration } from '@ironsource/fusion-ui/components/dynamic-components/common/entities';
import { IconData } from '@ironsource/fusion-ui/components/icon/common/entities';
import { EventEmitter } from '@angular/core';
import { MenuDropItem } from '@ironsource/fusion-ui/components/menu-drop';
export interface TableLabel {
    text: string;
    icon?: IconData;
    tooltip?: string;
}
export interface TableSearchOptions {
    placeholder?: string;
    onSearch?: EventEmitter<string>;
    initalValue?: string;
}
export interface TableOptions {
    tableId?: string;
    tableLabel?: TableLabel;
    noTableFooter?: boolean;
    searchOptions?: TableSearchOptions;
    hasReturnToTopButton?: boolean;
    scrollElementSelector?: string;
    stickyHeaderTopOffset?: number;
    sortingType?: string;
    remove?: TableRowRemoveAction;
    rowActionsMenu?: TableMultipleActions;
    isAllRowsSelectable?: boolean;
    isLoadingOverlayMode?: boolean;
    noDataMessage?: string;
    noDataSubMessage?: string;
    noDataImageBgUrl?: string;
    customNoData?: DynamicComponentConfiguration;
    isGroupedTable?: boolean;
    pagination?: TablePaginationOption;
    hasTotalsRow?: boolean;
    stickyHeader?: boolean;
    hideHeaderOnEmpty?: boolean;
    cellBorders?: boolean;
    emptyTableIcon?: string;
    rowStyle?: any;
    rowHeight?: TableRowHeight;
    rowTrackingOption?: string;
    headerRowStyle?: any;
    hasRowSpan?: boolean;
    rowsExpandableOptions?: TableRowsExpandableOptions;
    rowsOptions?: {
        [rowNumber: number]: TableRowOptions;
        global?: TableRowOptions;
        headerRow?: TableRowOptions;
        ignoredParentSelectorsRowClickEvent?: string[];
    };
    notAvailableText?: string;
    isFloatingActionDisabled?(row: any, action?: MenuDropItem): boolean;
    isRemoveIconHiddenForRow?(row: any): boolean;
    infoIconForRowOnHover?(row: any): string;
}
export interface TablePaginationOption {
    enable: boolean;
    loading?: boolean;
    handleLoadingFromHost?: boolean;
}
export interface TableRowOptions {
    [optionName: string]: any;
}
export interface TableRowMetaData {
    readonly?: boolean;
    inRequest?: boolean;
    disabled?: boolean;
    cellToolTip?: {
        [columnKey: string]: string;
    };
    rowspanColumnsData?: {
        [key: string]: number;
    };
    maxRowspanInColumn?: number;
}
export interface TableRowsExpandableOptions {
    key: string;
    columns: TableColumn[];
    sticky?: boolean;
    keyToIgnore?: string;
    expandLevels?: number;
    expendChunkSize?: number;
}
export declare enum TableRowHeight {
    Small = "small",
    Medium = "medium",
    Big = "big"
}
