import { OnInit, OnDestroy, ElementRef, SimpleChanges, OnChanges, AfterViewInit, EventEmitter } from '@angular/core';
import { AIAgentStepEntity, AIAgentStepPathEntity } from '@memberjunction/core-entities';
import { DialogService } from '@progress/kendo-angular-dialog';
import * as i0 from "@angular/core";
export declare class FlowAgentDiagramComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {
    private dialogService;
    reteContainer: ElementRef<HTMLDivElement>;
    constructor(dialogService: DialogService);
    agentId: string | null;
    steps: AIAgentStepEntity[];
    paths: AIAgentStepPathEntity[];
    EditMode: boolean;
    stepsChanged: EventEmitter<void>;
    pathsChanged: EventEmitter<void>;
    loading: boolean;
    error: string | null;
    selectedItem: {
        type: 'step' | 'path';
        id: string;
    } | null;
    selectedStep: AIAgentStepEntity | null;
    selectedPath: AIAgentStepPathEntity | null;
    connectionMode: boolean;
    connectionSourceStepId: string | null;
    tempConnection: {
        path: string;
    } | null;
    contextMenu: {
        visible: boolean;
        x: number;
        y: number;
        type: "path" | "step" | null;
        targetId: string | null;
    };
    stepTypes: string[];
    stepStatuses: string[];
    panZoom: {
        scale: number;
        translateX: number;
        translateY: number;
        isPanning: boolean;
        startX: number;
        startY: number;
    };
    private destroy$;
    private nodeElements;
    private connectionElements;
    private positionChanges$;
    private dragState;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    private initializeDiagram;
    private createNodeElement;
    private createConnectionElement;
    private createNodesAndConnections;
    private arrangeNodes;
    private updateConnections;
    private fitToView;
    private truncateText;
    private cleanup;
    private onNodeMouseDown;
    private onMouseMove;
    private onMouseUp;
    private saveStepPosition;
    addNewStep(): Promise<void>;
    autoArrange(): Promise<void>;
    private onNodeClick;
    private onPathClick;
    private selectStep;
    private selectPath;
    private clearSelection;
    closeProperties(): void;
    connectFromStep(): void;
    cancelConnectionMode(): void;
    private handleConnectionCreation;
    onSvgClick(event: MouseEvent): void;
    onSvgContextMenu(event: MouseEvent): void;
    onDocumentClick(event: MouseEvent): void;
    onDocumentMouseMove(event: MouseEvent): void;
    private updateTempConnection;
    saveStepProperties(): Promise<void>;
    savePathProperties(): Promise<void>;
    private showConfirmDialog;
    deleteSelectedStep(): Promise<void>;
    deleteSelectedPath(): Promise<void>;
    getStepName(stepId: string): string;
    zoomIn(): void;
    zoomOut(): void;
    resetZoom(): void;
    onWheel(event: WheelEvent): void;
    onSvgMouseDown(event: MouseEvent): void;
    onSvgMouseMove(event: MouseEvent): void;
    onSvgMouseUp(event: MouseEvent): void;
    private updateTransform;
    private onNodeContextMenu;
    private onPathContextMenu;
    connectFromContextMenu(): void;
    deleteFromContextMenu(): void;
    deletePathFromContextMenu(): void;
    private onSocketMouseDown;
    private onSocketMouseEnter;
    private onSocketMouseLeave;
    private onSocketMouseUp;
    static ɵfac: i0.ɵɵFactoryDeclaration<FlowAgentDiagramComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FlowAgentDiagramComponent, "mj-flow-agent-diagram", never, { "agentId": { "alias": "agentId"; "required": false; }; "steps": { "alias": "steps"; "required": false; }; "paths": { "alias": "paths"; "required": false; }; "EditMode": { "alias": "EditMode"; "required": false; }; }, { "stepsChanged": "stepsChanged"; "pathsChanged": "pathsChanged"; }, never, never, false, never>;
}
//# sourceMappingURL=flow-agent-diagram.component.d.ts.map