import type { Edge, Node, Position, ReactFlowInstance } from '../xyflow/react.ts';
import type { CSSProperties } from 'react';
import { type PreviewNodePositionMode } from './createPreviewNode';
import { type HandleBoundaryResolver } from './NodeUtils';
export interface PreviewGraph {
    node: Node;
    edges: Edge[];
}
export interface PreviewEndpoint {
    nodeId: string;
    handleId?: string | null;
}
export interface CreatePreviewGraphOptions {
    reactFlowInstance: ReactFlowInstance;
    source: PreviewEndpoint;
    target?: PreviewEndpoint;
    position?: {
        x: number;
        y: number;
    };
    data?: Record<string, unknown>;
    sourceHandleType?: 'source' | 'target';
    previewNodeSize?: {
        width: number;
        height: number;
    };
    handlePosition?: Position;
    ignoredNodeTypes?: string[];
    positionMode?: PreviewNodePositionMode;
    containerId?: string;
    trailingEdgeId?: string;
    trailingEdgeStyle?: CSSProperties;
    sourceBoundaryOf?: HandleBoundaryResolver;
}
export type PreviewGraphOverrides = Partial<Pick<CreatePreviewGraphOptions, 'containerId' | 'data' | 'position' | 'positionMode' | 'target' | 'trailingEdgeId' | 'trailingEdgeStyle'>>;
export declare function reparentPreviewNodeToContainer(previewNode: Node, containerId: string, reactFlowInstance: ReactFlowInstance): Node | null;
export declare function createPreviewGraph(options: CreatePreviewGraphOptions): PreviewGraph | null;
export declare function showPreviewGraph(options: CreatePreviewGraphOptions): PreviewGraph | null;
export declare function applyPreviewGraphToReactFlow(preview: PreviewGraph, reactFlowInstance: ReactFlowInstance): void;
//# sourceMappingURL=createPreviewGraph.d.ts.map