export interface FlowMinimapNode {
    id: string;
    x: number;
    y: number;
    width: number;
    height: number;
    color?: string;
}
export interface FlowMinimapEdge {
    from: {
        x: number;
        y: number;
    };
    to: {
        x: number;
        y: number;
    };
}
export interface FlowMinimapViewportRect {
    x: number;
    y: number;
    width: number;
    height: number;
}
/**
 * Optional viewport descriptor — when the host passes the live viewport,
 * the minimap centres clicks and drags around it.
 */
export interface FlowMinimapViewport {
    x: number;
    y: number;
    zoom?: number;
}
export interface FlowMinimapProps {
    nodes?: FlowMinimapNode[];
    edges?: FlowMinimapEdge[];
    /**
     * The viewport rectangle in *world* coordinates. The minimap scales it
     * down using `totalWidth` / `totalHeight`. Pass `null`/omit when the
     * host doesn't want to expose the viewport overlay.
     */
    viewportRect?: FlowMinimapViewportRect;
    /**
     * The viewport descriptor for click-to-centre / drag interactions. The
     * minimap reports `next.x` / `next.y` in world coordinates so the host
     * can pipe them straight into `setViewport({x, y, zoom})`. Zoom is
     * echoed unchanged.
     */
    viewport?: FlowMinimapViewport;
    totalWidth?: number;
    totalHeight?: number;
    /**
     * Legacy click-to-pan callback. Fires with the world coordinates of
     * the click point. Prefer `onViewportChange` for richer integration.
     */
    onViewportChange?: ((x: number, y: number) => void) | ((next: FlowMinimapViewport) => void);
    className?: string;
}
export declare function FlowMinimap({ nodes, edges, viewportRect, viewport, totalWidth, totalHeight, onViewportChange, className, }: FlowMinimapProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=FlowMinimap.d.ts.map