import { LayoutNode } from '../mind-map-types';
import { NodeDimension } from './useMindMapNodeDimensions';
interface UseMindMapAutofitParams {
    /** Array of positioned layout nodes */
    nodes: LayoutNode[];
    /** Uniform width of nodes */
    nodeWidth: number;
    /** Uniform height of nodes */
    nodeHeight: number;
    /** Viewport dimensions */
    dimensions: {
        width: number;
        height: number;
    };
    /** Whether autofit on load is enabled */
    autofit: boolean;
    /** Zoom controls with applyTransform method */
    zoomControls: {
        applyTransform: (scale: number, x: number, y: number) => void;
    };
    /** Optional map of actual measured node dimensions */
    nodeDimensions?: Map<string, NodeDimension>;
    /** Center X offset applied to viewport */
    centerX: number;
    /** Center Y offset applied to viewport */
    centerY: number;
    /** Layout offset X */
    offsetX: number;
    /** Layout offset Y */
    offsetY: number;
}
/**
 * Hook for managing automatic graph fitting to viewport
 *
 * Calculates optimal bounds and transform to fit all nodes within viewport,
 * applies transformation via zoom controls, and handles auto-trigger on data changes.
 *
 * @param params - Configuration object
 * @returns Object with triggerAutofit callback
 */
export declare function useMindMapAutofit({ nodes, nodeWidth, nodeHeight, dimensions, autofit, zoomControls, nodeDimensions, centerX, centerY, offsetX, offsetY, }: UseMindMapAutofitParams): {
    triggerAutofit: () => void;
};
export {};
//# sourceMappingURL=useMindMapAutofit.d.ts.map