import { OnInit } from '@angular/core';
import { DataSource } from '@angular/cdk/table';
import { Observable } from 'rxjs';
import { AbstractVariable } from '@iotize/tap/data';
export interface TableDataEntry {
    __date?: number;
    [key: string]: any;
}
export interface TableColumnType {
    header: string;
    columnDef: string;
    cell: (row: any) => string;
}
export declare class MonitoringTableComponent implements OnInit {
    /** Table columns */
    columns?: TableColumnType[];
    dataSource: MonitoringTableComponentDataSource;
    set columnsMap(mapping: {
        [key: string]: string;
    });
    /** Column definitions in order */
    displayedColumns: string[];
    set variables(variables: AbstractVariable<any>[]);
    set data$(stream: Observable<any>);
    set data(data: TableDataEntry[]);
    date: boolean;
    constructor();
    ngOnInit(): void;
    private setupColumns;
    private addColumn;
}
/**
 * TODO add export function
 */
export declare class MonitoringTableComponentDataSource extends DataSource<TableDataEntry> {
    options: {
        max: number;
        newItemOnTop: boolean;
    };
    _data: TableDataEntry[];
    private _subject;
    constructor(options?: {
        max: number;
        newItemOnTop: boolean;
    });
    add(item: TableDataEntry): void;
    set data(d: TableDataEntry[]);
    connect(): Observable<TableDataEntry[]>;
    refresh(): void;
    disconnect(): void;
    clear(): void;
}
