import { IKeyObjectValue } from "../../../type";
import { BuiltInVariables } from "../buildInVariables";
import { VPosition, VSize, VText } from "../enum";
import { IDrawComponent } from "../type";
import { TccErrorListener } from "./errorListener";
export interface ITableArgs {
    id?: string;
    table_id?: IDrawComponent;
    position?: VPosition;
    columns?: number;
    rows?: number;
    bgcolor?: string;
    frame_color?: string;
    frame_width?: number;
    border_color?: string;
    border_width?: number;
    cell?: (ITableCellArgs | undefined)[][];
    start_column?: number;
    start_row?: number;
    end_column?: number;
    end_row?: number;
    merge_cells?: IMergeCell[];
    merge_cell_ids?: IKeyObjectValue;
}
interface IMergeCell {
    start_column?: number;
    start_row?: number;
    end_column?: number;
    end_row?: number;
}
interface ITableCellArgs {
    table_id?: IDrawComponent;
    column?: number;
    row?: number;
    text?: string;
    width?: number;
    height?: number;
    text_color?: string;
    text_halign?: VText;
    text_valign?: VText;
    text_size?: VSize;
    bgcolor?: string;
    tooltip?: string;
    text_font_family?: string;
    isMerge?: boolean;
    merge_columns?: number;
    merge_rows?: number;
}
export default class BuildInTable {
    private _variables;
    private _errorListener;
    private _updateIds;
    private _defaultCell;
    private _defaultTable;
    constructor(variables: BuiltInVariables, errorListener: TccErrorListener);
    get updateIds(): string[];
    table({ x }: {
        x?: IDrawComponent;
    }): IDrawComponent | undefined;
    new(args: ITableArgs, posStr: string): IDrawComponent;
    private _paramVerfiy;
    updateId(id: IDrawComponent): string;
    cell({ table_id, ...args }: ITableCellArgs, posStr: string): void;
    cell_set_bgcolor({ table_id, column, row, bgcolor }: ITableCellArgs, posStr: string): void;
    cell_set_height({ table_id, column, row, height }: ITableCellArgs, posStr: string): void;
    cell_set_text({ table_id, column, row, text }: ITableCellArgs, posStr: string): void;
    cell_set_text_color({ table_id, column, row, text_color }: ITableCellArgs, posStr: string): void;
    cell_set_text_halign({ table_id, column, row, text_halign }: ITableCellArgs, posStr: string): void;
    cell_set_text_valign({ table_id, column, row, text_valign }: ITableCellArgs, posStr: string): void;
    cell_set_text_size({ table_id, column, row, text_size }: ITableCellArgs, posStr: string): void;
    cell_set_tooltip({ table_id, column, row, tooltip }: ITableCellArgs, posStr: string): void;
    cell_set_width({ table_id, column, row, width }: ITableCellArgs, posStr: string): void;
    clear({ table_id, start_column, start_row, end_column, end_row }: ITableArgs, posStr: string): void;
    delete({ table_id }: ITableArgs, posStr: string): void;
    merge_cells({ table_id, start_column, start_row, end_column, end_row }: ITableArgs, posStr: string): void;
    set_bgcolor({ table_id, bgcolor }: ITableArgs, posStr: string): void;
    set_border_color({ table_id, border_color }: ITableArgs, posStr: string): void;
    set_border_width({ table_id, border_width }: ITableArgs, posStr: string): void;
    set_frame_color({ table_id, frame_color }: ITableArgs, posStr: string): void;
    set_frame_width({ table_id, frame_width }: ITableArgs, posStr: string): void;
    set_position({ table_id, position }: ITableArgs, posStr: string): void;
    private _getTableItem;
    private _getTable;
    private _verfiyRequestFunc;
    private _rowColToInt;
}
export declare function createTable(key: string, data: IKeyObjectValue): IDrawComponent;
export {};
