export interface FlowDispatchAction {
    type: "connection/start";
    nodeId: string;
    handleId: string;
    handleType: "source" | "target";
    pointerId: number;
    clientX: number;
    clientY: number;
}
export type FlowDispatch = (action: FlowDispatchAction) => void;
export declare const FlowDispatchContext: import("react").Context<FlowDispatch>;
export declare function useFlowDispatch(): FlowDispatch;
/**
 * Internal-only callbacks shared with FlowNode. Not part of the public
 * surface; node renderers use the `useFlowNodeContext` hook instead.
 */
export interface FlowNodeBridge {
    beginNodeDrag(nodeId: string, pointerId: number, clientX: number, clientY: number, altKey?: boolean): void;
    selectNode(nodeId: string, additive: boolean): void;
    /**
     * Fire the consumer's `onNodeClick` for this node. Split from
     * `selectNode` so drag-start (which selects the node so it carries the
     * selection style) does NOT also fire the click event — otherwise a
     * drag would re-open the config panel.
     */
    notifyNodeClick(nodeId: string): void;
    selectEdge(edgeId: string, additive: boolean): void;
    /**
     * Reports measured DOM dimensions back to the canvas. FlowNode observes
     * itself via ResizeObserver and calls this on size changes. The canvas
     * de-dupes (skips when w/h unchanged) and emits a `dimensions`
     * NodeChange so edges can recompute against the real footprint.
     */
    reportDimensions(nodeId: string, width: number, height: number): void;
    /** Removes a single node. Edges that reference it are dropped too. */
    deleteNode(nodeId: string): void;
    /**
     * Toggle the `data.collapsed` flag on a group / forEach container.
     * Used by the chevron in the GroupNode / ForEachNode header so the
     * user can expand/collapse the subflow without an external toolbar.
     * No-op for non-container kinds.
     */
    toggleNodeCollapse(nodeId: string): void;
}
export declare const FlowNodeBridgeContext: import("react").Context<FlowNodeBridge>;
export declare function useFlowNodeBridge(): FlowNodeBridge;
//# sourceMappingURL=FlowCanvasContext.d.ts.map