import { ChartType, IFontStyle } from '../../../../../constants/chart-style';
import { TableTextDisplay, IFilterColumn, ITableColumn, ITableDataSource } from '../../../../../constants/table-style';
import { ISparkLineConfig } from '../../../../../constants/sparkline';
import Compare, { ICompare } from '../../../chart-style/components/compare';
import SparkLineConfig from '../../../chart-style/components/sparkline';
import ChartStyleService, { IChartStyleInitOption, IChartStyleOption } from '../base';
export interface ITableChartStyle extends IChartStyleOption {
    chartType: ChartType;
    textDisplayMode: TableTextDisplay;
    filterColumns: IFilterColumn[];
    pagination: boolean;
    tablePageSize: number;
    compare: ICompare;
    columns?: ITableColumn[];
    dataSource?: ITableDataSource[];
    sparkline?: ISparkLineConfig;
    bordered?: boolean;
    tableTitleFont: IFontStyle;
    tableTitleBgColor: string;
    scroll: boolean;
    autoplaySpeed: number;
}
export default abstract class TableChartStyleService<T extends ITableChartStyle = ITableChartStyle> extends ChartStyleService<T> {
    abstract readonly chartType: ChartType;
    static getChartInitStyle(options: IChartStyleInitOption): IChartStyleInitOption;
    private _filterColumns;
    textDisplayMode: TableTextDisplay;
    pagination: boolean;
    tablePageSize: number;
    columns: ITableColumn[];
    dataSource: ITableDataSource[];
    bordered?: boolean;
    tableTitleFont: IFontStyle;
    tableTitleBgColor: string;
    scroll: boolean;
    autoplaySpeed: number;
    compare: Compare;
    sparkline: SparkLineConfig;
    get hasSparkline(): ITableColumn | undefined;
    get hasColumnsConfig(): boolean;
    get filterColumns(): IFilterColumn[];
    setColumnConfig(columnItem: any, confItem: any, key: string): void;
    getOptions(): ITableChartStyle;
    get contextOption(): {
        metrics: never[];
        buckets: never[];
        filterColumns: never[];
        chartType: ChartType;
        textDisplayMode: TableTextDisplay;
        pagination: boolean;
        tablePageSize: number;
        compare: ICompare;
        columns?: ITableColumn[] | undefined;
        dataSource?: ITableDataSource[] | undefined;
        sparkline?: ISparkLineConfig | undefined;
        bordered?: boolean | undefined;
        tableTitleFont: IFontStyle;
        tableTitleBgColor: string;
        scroll: boolean;
        autoplaySpeed: number;
        displayColors?: import("../base").IColor[] | undefined;
    };
    sortColByConfigCol(columns: IFilterColumn[], columnsConfig: IFilterColumn[]): IFilterColumn[];
    initDefaultColumn(col: IFilterColumn): void;
    setPagination(pagination: boolean): void;
    setTablePageSize(tablePageSize: number): void;
    setTextDisplayMode(textDisplayMode: TableTextDisplay): void;
    setFilterColumns(filterColumns: IFilterColumn[]): void;
    setColumns(columns?: ITableColumn[]): void;
    setDataSource(data?: ITableDataSource[]): void;
    setBordered(bordered?: boolean): void;
    setTableTitleFont(tableTitleFont: IFontStyle): void;
    setTableTitleBgColor(tableTitleBgColor: string): void;
    setScroll(scroll: boolean): void;
    setAutoplaySpeed(autoplaySpeed: number): void;
    /**
     * 批量修改styleOption装饰过的值
     * WARNING: 在父级类中使用请注意，此赋值方法也会识别到子类中styleOption装饰的
     * @param obj 赋值操作的map映射
     * @param allowNil 对obj中的nil值是否进行赋值操作
     */
    set(obj: Partial<T>, allowNil?: boolean): void;
    /**
     * 单独修改某个styleOption装饰过的值
     * @param key 被装饰过的值的名称，如果名称不存在，或者未被装饰则函数调用无效
     * @param value 值
     */
    set<K extends keyof T>(key: K, value: T[K]): void;
    constructor(option: T);
}
