import React from "react";
import { SidebarItem } from "../../../CommonUI/BuilderUI/Sidebar";
import { RuleTableEditContext } from "@appglue/common/dist/Rule/Table/Rule/RuleTableEditContext";
import { RuleTableConfiguration } from "@appglue/common/dist/Rule/Table/Rule/RuleTableConfiguration";
import { DataDefinition } from "@appglue/common/dist/Common/Data/DataDefinition";
import { UnitTestConfiguration } from "@appglue/common/dist/Common/UnitTesting/UnitTestConfiguration";
export interface IXRuleTableEditor {
    ruleDefinition: RuleTableConfiguration;
    dataDefinition?: DataDefinition;
    ruleTableName?: string;
    onRuleTableNameUpdate?: (newName: string) => void;
    onRuleSave?: () => void;
    onRuleCancel?: () => void;
    saveUnitTest?: (unitTest: UnitTestConfiguration) => void;
    getUnitTests?: () => Promise<UnitTestConfiguration[]>;
}
export declare class RuleTableBuilder extends React.Component<IXRuleTableEditor, {}> {
    editContext: RuleTableEditContext;
    tabs: SidebarItem[];
    ruleDefinition: RuleTableConfiguration;
    constructor(props: IXRuleTableEditor);
    onChangeRuleName(newName: string): void;
    getDefaultTabs(): SidebarItem[];
    render(): JSX.Element;
}
