import type { ColumnSettingType } from './config';
export interface StatesType {
    data: any[];
    _columns: ColumnSettingType[];
    fixedColumns: ColumnSettingType[];
    fixedColumnsLength: number;
    notFixedColumns: ColumnSettingType[];
    notFixedColumnsLength: number;
    originColumns: ColumnSettingType[];
    leafColumns: ColumnSettingType[];
    fixedLeafColumns: ColumnSettingType[];
    columns: ColumnSettingType[];
    leafColumnsLength: number;
    fixedLeafColumnLength: number;
}
export interface TableEntityType {
    data: Record<string, any>;
    border: boolean;
    stripe: boolean;
    loading: boolean;
    height: number;
    size: Meleon.MlSize;
    refresherEnabled: boolean;
    refresherInterval: number;
    cellStyle: (e: {
        rowIdx: number;
        row: Record<string, any>;
        columnIdx: number;
        column: ColumnSettingType;
    }) => Record<string, any>;
    rowStyle: (e: {
        rowIdx: number;
        row: Record<string, any>;
    }) => Record<string, any>;
    columnStyle: (e: {
        columnIdx: number;
        column: ColumnSettingType;
    }) => Record<string, any>;
}
export type WatcherStatesType = Partial<StatesType & TableEntityType>;
export type TableDataType<T> = Array<T>;
export declare class Observer {
    name: string;
    constructor(name: string);
    update(): void;
}
