import React from "react";
import { FlowConfiguration } from "@appglue/common/dist/Flow/FlowConfiguration";
import { DraggableData, DraggableEvent } from "react-draggable";
import { FlowStepSequence } from "@appglue/common/dist/Flow/Structure/FlowStepSequence";
import { IPosition } from "./Common/IPosition";
import { FlowEditContext } from "../FlowEditContext";
interface IFlowSequenceStack {
    flow: FlowConfiguration;
    sequence: FlowStepSequence;
    editContext: FlowEditContext;
}
export declare class FlowSequenceStack extends React.Component<IFlowSequenceStack, {
    isDragging: boolean;
    openExpression: boolean;
}> {
    containerRef: React.RefObject<HTMLDivElement>;
    constructor(props: IFlowSequenceStack);
    static getEndSequenceTitleStyle(sequence: FlowStepSequence): {
        color: string;
    };
    static getPrimarySequenceTitleStyle(): {
        color: string;
    };
    static getErrorSequenceTitleStyle(sequence: FlowStepSequence): {
        color: string;
    };
    static getSequenceTitleStyle(sequence: FlowStepSequence): {
        color: string;
    };
    getDefaultPosition: () => IPosition;
    dragDropAction: (data: DraggableData, isCombining?: boolean) => void;
    onDragStop: (_e: DraggableEvent, data: DraggableData) => void;
    onDragStart: (_e: DraggableEvent, _data: DraggableData) => void;
    onDrag: (_e: DraggableEvent, data: DraggableData) => void;
    onSelectSequence: (e: React.MouseEvent<HTMLDivElement>) => void;
    onMouseDown: () => void;
    onMouseUp: () => void;
    isEnabledPlaceholderWhileDrop(sequence: FlowStepSequence): boolean;
    getSequenceBorderColor(sequence: FlowStepSequence): string;
    getSequenceBackgroundColor(sequence: FlowStepSequence): string;
    render(): JSX.Element;
    private RenderNormalStack;
    private RenderBranchStack;
    private RenderLoopBack;
}
export {};
