import React from "react";
import { XFlowConfiguration } from "./Structure/XFlowConfiguration";
import { BeforeCapture, DragStart, DragUpdate, DropResult, ResponderProvided } from "react-beautiful-dnd";
import { FlowEditContext } from "./FlowEditContext";
import { SidebarItem } from "../CommonUI/BuildUI/Sidebar";
import { XDataDefinition } from "../Common/Data/XDataDefinition";
import { IPosition } from "./CommonUI/IPosition";
export interface FlowEditorParameters {
    flow: XFlowConfiguration;
    flowStartDataDefinition?: XDataDefinition;
    flowTitle?: string;
    viewAPIUrl?: string;
    onFlowSave?: () => void;
    onFlowCancel?: () => void;
}
export declare class XFlowEditor extends React.Component<FlowEditorParameters, {}> {
    editContext: FlowEditContext;
    mousePosition: IPosition;
    tabs: SidebarItem[];
    constructor(props: FlowEditorParameters);
    onMouseMove: (event: MouseEvent) => void;
    componentWillUnmount(): void;
    get flow(): XFlowConfiguration;
    getDefaultTabs(): SidebarItem[];
    onChangeFlowTitle(event: React.ChangeEvent<HTMLInputElement>): void;
    render(): JSX.Element;
    onBeforeCapture(before: BeforeCapture): void;
    onBeforeDragStart(initial: DragStart): void;
    onDragUpdate(initial: DragUpdate, _provided: ResponderProvided): void;
    onDragEnd(result: DropResult): void;
}
