import { ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
import { Params } from '@angular/router';
import { Subject } from 'rxjs';
import { IMultiSelectSettings } from '../../components/platform-multiselect';
import { DataArrayOfObjects, DataSet } from '../../interfaces/DisplayInterfaces';
import { DataTableValueInfo, GenericTableConfiguration, NameValue, TableButtonInfo } from '../../interfaces/WidgetInterfaces';
import { CellInfo } from '../platform-table/platform-table.component';
export declare class PlatformTableXComponent implements OnInit, OnDestroy, OnChanges {
    RemoveFilter: EventEmitter<string>;
    AddFilter: EventEmitter<NameValue>;
    NewSort: EventEmitter<NameValue>;
    ButtonClick: EventEmitter<Params>;
    ButtonInfoClick: EventEmitter<Params>;
    Hover: EventEmitter<Params>;
    ValueClick: EventEmitter<DataTableValueInfo>;
    RowClick: EventEmitter<any>;
    RowSelect: EventEmitter<any>;
    PageChange: EventEmitter<any>;
    Config: GenericTableConfiguration;
    Dataset: DataSet | null;
    TableData: DataArrayOfObjects | null;
    SortAndfilterLocally: boolean;
    columnHeaderTemplate: TemplateRef<any>;
    columnFilterTemplate: TemplateRef<any>;
    cellBodyTemplate: TemplateRef<any>;
    tableSelection: ElementRef;
    searchUpdated: Subject<NameValue>;
    ngUnsubscribe: Subject<boolean>;
    defaultPageSize: number;
    currentPage: number;
    currentRecordStart: number;
    currentRecordEnd: number;
    minPage: number;
    maxPage: number;
    columns: string[];
    rows: string[][];
    filterRows: string[][];
    filter: string;
    filterlkp: Params;
    dropdowns: string[][];
    dataSetCells: CellInfo[][];
    paretoColumns: string[];
    currentPageOfRows: string[][];
    selectedRow: number;
    selectedCol: number;
    multiSelectSettings: IMultiSelectSettings;
    localFilters: Params;
    filterRowVisible: boolean;
    dropdownRowVisible: boolean;
    defaultConfig: GenericTableConfiguration;
    constructor();
    MergeConfig(): void;
    NeedsButtonColumn(): boolean;
    HasButtons(): boolean;
    TotalColumnCount(): number;
    ToggleFilterSortRow(): void;
    RefreshFromDataSet(TableDataChanged?: boolean): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    filterUpdate(filterNV: NameValue, forceOnEmpty?: boolean): void;
    ToggleAndSort(colName: string, e: any): void;
    ExportToCsv(): void;
    DownloadCsv(content: any, fileName: any, mimeType: any): void;
    SetSort(colName: string, sortExpression: string): void;
    ngOnDestroy(): void;
    private getColumnRule(col);
    private rangeMap(inMin, inMax, outMin, outMax, inValue);
    private maxTextLength(columnName, colIdx, tempInfo, rule);
    private rowChange(columnName, colIdx, tempInfo, rule);
    private dropdown(columnName, colIdx, tempInfo, rule);
    private paretoMap(columnName, colIdx, tempInfo, rule);
    private redMap(columnName, colIdx, tempInfo, rule);
    private greenMap(columnName, colIdx, tempInfo, rule);
    private heatmap(columnName, colIdx, tempInfo, rule);
    BuildDisplay(): void;
    scaleParetoValueToPercentage(initialValue: number, minVal: number, maxVal: number): number;
    LocalRemoveFilter(name: string): void;
    LocalAddFilter(name: string, value: string): void;
    CellIsIcon(colIdx: number): boolean;
    isValueClickLink(colIdx: number): boolean;
    onRowClick(rowData: any, index: number): void;
    onRowSelect(rowData: any): void;
    changeSelection(drow: any, dcol: any): void;
    onValueClick(colIdx: any, rowIdx: any): void;
    ApplyFilterParams(): void;
    ApplyGlobalFilter(): void;
    CalculateMaxPage(): void;
    ClientButtonInfoClick(tableButtonInfo: TableButtonInfo, rowidx: any): void;
    ClientHover(rowidx: any): void;
    ClientButtonClick(button: any, rowidx: any): void;
    GetBgColorStyle(row: number, col: number): string;
    GetCellText(row: number, col: number): string;
    TruncateDecimalValue(row: number, col: number, precision: number): string;
    GetCellScaledValue(row: number, col: number): number;
    GetFgColorStyle(row: number, col: number): string;
    onGlobalFilterChange(newValue: string): void;
    onFilterChange(column: any, filterExpression: any): void;
    onDropdownChanged(column: any, filterExpression: any): void;
    onMultiselectChanged(column: any): void;
    PageCrement(amount: number): void;
    onPageSizeChange(newValue: string): void;
    OnPageNumberChange(newValue: string): void;
    setPageOfRows(): void;
    GetColumnStyle(column: any): {};
    GetHeaderStyle(header: any): {};
    TransformToDataSet(): DataSet;
}
