import { Component } from "react";
import { SidebarItem } from "../../CommonUI/BuilderUI/Sidebar";
import { TreeRuleConfiguration } from "@appglue/common/dist/Rule/Tree/TreeRuleConfiguration";
import { TreeRuleEditContext } from "@appglue/common/dist/Rule/Tree/TreeRuleEditContext";
import { IColorElem } from "@appglue/common/dist/Common/IColorElem";
import { IColorPickerDialog } from "../../CommonUI/BuilderUI/ColorPicker";
import { UnitTestConfiguration } from "@appglue/common/dist/Common/UnitTesting/UnitTestConfiguration";
export interface ITreeRuleEditor {
    ruleDefinition: TreeRuleConfiguration;
    treeRuleName?: string;
    onTreeRuleNameUpdate?: (newName: string) => void;
    onRuleSave?: () => void;
    onRuleCancel?: () => void;
    saveUnitTest?: (unitTest: UnitTestConfiguration) => void;
    getUnitTests?: () => Promise<UnitTestConfiguration[]>;
}
export declare class TreeRuleBuilder extends Component<ITreeRuleEditor, any> {
    editContext: TreeRuleEditContext;
    tabs: SidebarItem[];
    ruleDefinition: TreeRuleConfiguration;
    constructor(props: ITreeRuleEditor);
    private _selectedForColor;
    get selectedForColor(): IColorPickerDialog | undefined;
    set selectedForColor(sel: IColorPickerDialog | undefined);
    onChangeRuleName(newName: string): void;
    setSelectedForColor(sequence: IColorElem, element: HTMLElement): void;
    getDefaultTabs(): SidebarItem[];
    render(): JSX.Element;
}
