import { Component } from "react";
import { SidebarItem } from "../CommonUI/BuilderUI/Sidebar";
import { TextMergeConfiguration } from "@appglue/common/dist/TextMerge/TextMergeConfiguration";
import { TextMergeEditContext } from "@appglue/common/dist/TextMerge/TextMergeEditContext";
import { RawDraftContentState } from "draft-js";
import { UnitTestConfiguration } from "@appglue/common/dist/Common/UnitTesting/UnitTestConfiguration";
export interface ITextMergeBuilder {
    value?: string | RawDraftContentState;
    textMergeName?: string;
    onTextMergeNameUpdate?: (newName: string) => void;
    onSave?: () => void;
    onCancel?: () => void;
    definition: TextMergeConfiguration;
    onChange?: (newValue: RawDraftContentState) => void;
    saveUnitTest?: (unitTest: UnitTestConfiguration) => void;
    getUnitTests?: () => Promise<UnitTestConfiguration[]>;
}
export declare class TextMergeBuilder extends Component<ITextMergeBuilder, any> {
    tabs: SidebarItem[];
    editContext: TextMergeEditContext;
    constructor(props: ITextMergeBuilder);
    getDefaultTabs(): SidebarItem[];
    onUpdateName(newName: string): void;
    render(): JSX.Element;
}
