import React from "react";
import { DropResult } from "react-beautiful-dnd";
import { MappingEditContext } from "./Builder/MappingEditContext";
import { MappingConfiguration } from "@appglue/common/dist/Mapping/MappingConfiguration";
import { SidebarItem } from "../CommonUI/BuilderUI/Sidebar";
import { UnitTestConfiguration } from "@appglue/common/dist/Common/UnitTesting/UnitTestConfiguration";
export interface IMappingBuilder {
    definition: MappingConfiguration;
    mappingBuilderName?: string;
    onMappingBuilderNameUpdate?: (newName: string) => void;
    onSave?: () => void;
    onCancel?: () => void;
    saveUnitTest?: (unitTest: UnitTestConfiguration) => void;
    getUnitTests?: () => Promise<UnitTestConfiguration[]>;
}
export declare class MappingBuilder extends React.Component<IMappingBuilder, {}> {
    editContext: MappingEditContext;
    tabs: SidebarItem[];
    constructor(props: IMappingBuilder);
    getDefaultTabs(): SidebarItem[];
    onChangedName(newName: string): void;
    onDragEnd: (result: DropResult) => void;
    onDragStart: () => void;
    RenderMappingBuilder(): JSX.Element;
    render(): JSX.Element;
}
export declare const BuilderRender: import("styled-components").StyledComponent<"div", any, {}, never>;
