import { TableColumn } from "../Shared/TableColumn";
import { ValueRuleRow } from "./ValueRuleRow";
import { ValueRuleColumn } from "./ValueRuleColumn";
import { ValueRuleCell } from "./ValueRuleCell";
import { XExecutionData } from "../../../Common/Data/ExecutionData/XExecutionData";
import { ITestingContext } from "../../../Common/Testing/ITestingContext";
import { XDataType } from "../../../Common/Data/XDataType";
import { IConfigStorage } from "../../../Common/IConfigStorage";
import { IDesignValidationProvider, ValidationIssue } from "../../../Common/IDesignValidationProvider";
import { IDataDefinition } from "../../../Common/Data/Definitions/IDataDefinition";
import { BaseRuleTableDefinition } from "../Common/BaseRuleTableDefinition";
import { ResultCell } from "../Common/ResultCell";
export declare class ValueTableDefinition extends BaseRuleTableDefinition implements IConfigStorage, IDesignValidationProvider {
    _id: string;
    private _columns;
    private _rows;
    constructor();
    addResultColumn(name?: string): TableColumn;
    import(data: object[]): void;
    export(data: object[]): object;
    run(data: XExecutionData, testContext?: ITestingContext): any;
    getDefaultResultByColumnId(columnId: string): ResultCell | undefined;
    getDefaultResultByOrder(order: number): ResultCell | undefined;
    get columns(): ValueRuleColumn[];
    get rows(): ValueRuleRow[];
    syncAllRows(): void;
    syncDefaultResults(): void;
    syncRow(row: ValueRuleRow): void;
    addColumn(name?: string): ValueRuleColumn;
    private getColumnByName;
    removeColumn(id: string): void;
    addRow(): ValueRuleRow;
    removeRow(row: ValueRuleRow): void;
    changeResultColumn(resultColumn: TableColumn, type: XDataType): void;
    renameColumn(oldName: string, newName: string): void;
    changeColumnType(column: ValueRuleColumn, type: XDataType): void;
    getColumnById(id: string): ValueRuleColumn | undefined;
    getResultColumnById(id: string): TableColumn | undefined;
    getNextCell(cell: ValueRuleCell | ResultCell): null | ValueRuleCell | ResultCell;
    setResultColumnType(rule: TableColumn, dataType: IDataDefinition): void;
    getPrevCell(cell: ValueRuleCell | ResultCell): null | ValueRuleCell | ResultCell;
    getNextRowCell(cell: ValueRuleCell | ResultCell): null | ValueRuleCell | ResultCell;
    getPrevRowCell(cell: ValueRuleCell | ResultCell): null | ValueRuleCell | ResultCell;
    getDesignValidationIssues(): ValidationIssue[];
    getStorageData(): object;
    setStorageData(data: object): void;
    setRuleColumnType(rule: ValueRuleColumn, dataType: IDataDefinition): void;
    getCellDataDef(cell: ValueRuleCell): IDataDefinition;
}
