import { EventEmitter } from '@angular/core';
import { MatDialog } from "@angular/material";
import { jsPlumbToolkitComponent } from '../../svc/jsplumbtoolkit-angular';
import { FlowModuleOption, FlowEventMethod } from '@lowcodeunit/core';
export declare class BaseLayoutBehavior {
    dialog: MatDialog;
    protected dataUpdatedCallback: Function;
    protected minCanvasHeight: number;
    protected moduleOptions: FlowModuleOption[];
    protected registeredCanvasEvents: string[];
    protected registeredToolkitEvents: string[];
    onKeyup(event: any): void;
    FlowInit: EventEmitter<jsPlumbToolkitComponent>;
    OnError: EventEmitter<{
        Error: string;
        Action: string;
    }>;
    FlowLayout: any;
    ToolkitComponent: jsPlumbToolkitComponent;
    constructor(dialog: MatDialog);
    AfterDataLoad(): void;
    AfterViewInit(registerDroppables: boolean, droppablesParent: string, droppablesSelector: string): void;
    CanvasClick(ctx: BaseLayoutBehavior, e: Event): void;
    EditNode(ev: any, ctx: BaseLayoutBehavior, node: any): void;
    Init(dataUpdatedCallback: Function, minCanvasHeight: number): void;
    ModeChanged(ctx: BaseLayoutBehavior, mode: string): void;
    ObjectRepainted(ctx: BaseLayoutBehavior): void;
    PrepareNodesAndPorts(): void;
    RelayoutFlow(): void;
    RefreshNode(nodeId: string): void;
    RemoveNode(ev: any, ctx: BaseLayoutBehavior, node: any, override: boolean): void;
    SetModuleOptions(options: FlowModuleOption[]): void;
    ToggleSelection(ctx: BaseLayoutBehavior, node: any): void;
    protected fixJSPlumb(): void;
    protected handleMultiSelect(): void;
    protected listFlowModuleTypes(): any;
    protected registerSelectionCanvasEvents(node: any, self: BaseLayoutBehavior): void;
    protected registerCanvasEvents(canvasEvents: FlowEventMethod[], ctx: any, force: boolean): void;
    protected registerToolkitEvents(toolkitEvents: FlowEventMethod[], ctx: any): void;
    protected setMouseUpAction(): void;
    protected setDataUpdatedCallback(): void;
    protected setToolkitComponent(toolkitComponent: jsPlumbToolkitComponent): void;
}
