import { IDataDefinition } from "../../../Common/Data/Definitions/IDataDefinition";
import { XDataDefinition } from "../../../Common/Data/XDataDefinition";
import { Executable } from "../../../Common/Execution/Executable";
import { ValidationIssue } from "../../../Common/IDesignValidationProvider";
import { TableColumn } from "../Shared/TableColumn";
import { IRuleTableDefinition } from "./IRuleTableDefinition";
import { ResultCell } from "./ResultCell";
export declare abstract class BaseRuleTableDefinition extends Executable implements IRuleTableDefinition {
    protected _resultColumns: TableColumn[];
    protected _defaultResult: {
        [id: string]: ResultCell;
    };
    protected _allowDefaultResults: boolean;
    get allowDefaultResults(): boolean;
    set allowDefaultResults(allowDefaultResults: boolean);
    set executionResult(res: (() => XDataDefinition) | XDataDefinition | undefined);
    get executionResult(): (() => XDataDefinition) | XDataDefinition | undefined;
    protected getResultColumnByName(name: string): TableColumn | undefined;
    get defaultResult(): {
        [id: string]: ResultCell;
    };
    get resultColumns(): TableColumn[];
    syncAllRows(): void;
    syncDefaultResults(): void;
    protected addResultColumnInternal(name?: string): TableColumn;
    addResultColumn(name?: string): TableColumn;
    removeResultColumn(id: string): void;
    getDefaultResultByColumnId(columnId: string): ResultCell | undefined;
    getResultColumnType(resultcol: TableColumn): IDataDefinition | undefined;
    setResultColumnType(rule: TableColumn, dataType: IDataDefinition): void;
    getResultColumnValidationIssues(rescol: TableColumn): ValidationIssue[];
    getResultCellValidationIssues(cell: ResultCell): ValidationIssue[];
    getDefaultResultCellValidationIssues(resultcell: ResultCell): ValidationIssue[];
}
