interface ViewportState {
    x: number;
    y: number;
    scale: number;
}
export declare function useMindMapViewport(containerRef: React.RefObject<HTMLDivElement>, // Changed: Require external ref
initialScale?: number, minScale?: number, maxScale?: number, enableZoom?: boolean, enablePan?: boolean): {
    viewport: ViewportState;
    isPanning: boolean;
    containerRef: import('react').RefObject<HTMLDivElement>;
    setViewport: import('react').Dispatch<import('react').SetStateAction<ViewportState>>;
    handlers: {
        onMouseDown: (e: React.MouseEvent) => void;
        onMouseMove: (e: React.MouseEvent) => void;
        onMouseUp: () => void;
        onMouseLeave: () => void;
        onWheel: (e: React.WheelEvent) => void;
    };
    zoomControls: {
        zoomIn: () => void;
        zoomOut: () => void;
        reset: () => void;
        /**
         * Apply a custom viewport transform (for autofit)
         * @param scale - Target scale factor
         * @param x - Target pan X offset
         * @param y - Target pan Y offset
         */
        applyTransform: (scale: number, x: number, y: number) => void;
    };
};
export {};
//# sourceMappingURL=useMindMapViewport.d.ts.map