/**
 * minimap.ts — Zoom navigator / minimap component for editors.
 *
 * Provides a small overview of the full canvas with a viewport indicator
 * that can be dragged to navigate around the document.
 */
import React from "react";
export interface MinimapConfig {
    /** Width of the minimap panel in pixels. */
    width?: number;
    /** Height of the minimap panel in pixels. */
    height?: number;
    /** Show/hide the minimap. */
    visible?: boolean;
    /** Position on screen. */
    position?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
    /** Opacity of the minimap. */
    opacity?: number;
}
export interface ViewportRect {
    x: number;
    y: number;
    width: number;
    height: number;
}
export interface MinimapProps {
    /** The full canvas/document as a data URL or canvas ref. */
    canvasRef?: React.RefObject<HTMLCanvasElement | null>;
    /** Alternative: provide image data directly. */
    imageDataUrl?: string;
    /** Total document dimensions. */
    documentWidth: number;
    documentHeight: number;
    /** Currently visible viewport. */
    viewport: ViewportRect;
    /** Called when user drags the viewport indicator. */
    onViewportChange?: (viewport: ViewportRect) => void;
    /** Configuration. */
    config?: MinimapConfig;
    className?: string;
}
/** Zoom navigator / minimap showing a scaled-down view of the full document. */
export declare const Minimap: React.FC<MinimapProps>;
/** Hook for managing minimap visibility state. */
export declare function useMinimap(initialVisible?: boolean): {
    visible: boolean;
    setVisible: React.Dispatch<React.SetStateAction<boolean>>;
    toggle: () => void;
};
