import { type Edge, type Node, Position, type ReactFlowInstance } from '../xyflow/react.ts';
import { type HandleBoundaryResolver } from './NodeUtils';
export type PreviewNodePositionMode = 'drop' | 'center';
export declare const PREVIEW_EDGE_STYLE: Edge['style'];
export declare function isPreviewEdge(edge: {
    id?: string;
    source?: string;
    target?: string;
}): boolean;
export declare function getOppositePosition(position: Position): Position;
export interface CreatePreviewNodeOptions {
    sourceNodeId: string;
    sourceHandleId: string;
    reactFlowInstance: ReactFlowInstance;
    position?: {
        x: number;
        y: number;
    };
    data?: Record<string, unknown>;
    sourceHandleType?: 'source' | 'target';
    previewNodeSize?: {
        width: number;
        height: number;
    };
    handlePosition?: Position;
    ignoredNodeTypes?: string[];
    positionMode?: PreviewNodePositionMode;
    sourceBoundaryOf?: HandleBoundaryResolver;
}
export declare function createPreviewNode(options: CreatePreviewNodeOptions): {
    node: Node;
    edge: Edge;
} | null;
export declare function applyPreviewToReactFlow(preview: {
    node: Node;
    edge: Edge;
}, reactFlowInstance: ReactFlowInstance): void;
export declare function removePreviewFromReactFlow(reactFlowInstance: ReactFlowInstance): void;
//# sourceMappingURL=createPreviewNode.d.ts.map