import LogicFlow, { Model, BaseNodeModel, BaseEdgeModel } from '@logicflow/core';
import AnchorConfig = Model.AnchorConfig;
import Point = LogicFlow.Point;
export type ProximityConnectProps = {
    enable: boolean;
    distance: number;
    reverseDirection: boolean;
    virtualEdgeStyle: Record<string, unknown>;
    /**
     * proximityConnect 类型:
     * - 'node': 节点-节点连接
     * - 'anchor': 锚点-锚点连接
     * - 'default': 节点-锚点连接
     */
    type: 'node' | 'anchor' | 'default';
};
export declare class ProximityConnect {
    static pluginName: string;
    enable: boolean;
    type: 'node' | 'anchor' | 'default';
    lf: LogicFlow;
    closestNode?: BaseNodeModel;
    currentDistance: number;
    thresholdDistance: number;
    currentNode?: BaseNodeModel;
    reverseDirection: boolean;
    currentAnchor?: AnchorConfig;
    closestAnchor?: AnchorConfig;
    virtualEdge?: BaseEdgeModel;
    virtualEdgeStyle: Record<string, unknown>;
    constructor({ lf, options, }: LogicFlow.IExtensionProps & {
        options: ProximityConnectProps;
    });
    render(): void;
    addEventListeners(): void;
    handleNodeDrag(): void;
    handleDrop(): void;
    handleAnchorDrag(clientX: number, clientY: number): void;
    findClosestAnchorOfNode(draggingNode: BaseNodeModel, allNodes: BaseNodeModel[]): void;
    findClosestAnchorOfAnchor(draggingPoint: Point, allNodes: BaseNodeModel[]): void;
    anchorAllowConnect(node: BaseNodeModel, anchor: AnchorConfig, draggingAnchor: AnchorConfig | undefined): boolean | undefined;
    sameEdgeIsExist(edge: BaseEdgeModel): boolean;
    addVirtualEdge(): void;
    addActualEdge(): void;
    setVirtualEdgeStyle(value: Record<string, unknown>): void;
    setThresholdDistance(distance: number): void;
    setReverseDirection(value: boolean): void;
    setEnable(enable: boolean): void;
    resetData(): void;
}
