import ComponentModel from '../../model/Component.js';
import { ComponentOption, ZRFontStyle, ZRFontWeight } from '../../util/types.js';
import { PathState } from 'tvrender/lib/graphic/Path.js';
export interface IMergeCell {
    end_column: number;
    end_row: number;
    start_column: number;
    start_row: number;
}
interface ICell {
    height?: number;
    text: string;
    text_color?: string;
    bgcolor?: string;
    text_halign?: string;
    text_size?: string;
    text_valign?: string;
    text_font_family?: string;
    width?: number;
    column: number;
    row: number;
    merge_columns?: number;
    merge_rows?: number;
    fontStyle?: ZRFontStyle;
    fontWeight?: ZRFontWeight;
}
export declare type IPosition = 'top_right' | 'top_left' | 'bottom_center' | 'bottom_left' | 'bottom_right' | 'middle_left' | 'middle_right' | 'top_center' | 'middle_center';
export interface ITable {
    bgcolor?: string;
    border_width?: number;
    cell: ICell[][];
    frame_width?: number;
    frame_color?: string;
    border_color?: string;
    position: IPosition;
    columns: number;
    rows: number;
    merge_cells?: IMergeCell[];
    id: string;
    line: string;
}
export interface TableOption extends ComponentOption {
    mainType?: 'table';
    show?: boolean;
    paddings?: number;
    tables: ITable[];
    emphasis?: {
        emphasisState?: PathState;
    };
}
declare class TableModel extends ComponentModel<TableOption> {
    static type: "table";
    type: "table";
    ableDataZoomUpdate: boolean;
    static defaultOption: TableOption;
    mergeTables(tables: ITable[]): void;
    setAbleDataZoomUpdate(ableDataZoomUpdate: boolean): void;
}
export default TableModel;
