import { Vector2D } from '../../types/common';
/**
 * Layout element configuration
 */
export interface LayoutElement {
    id: string;
    width: number;
    height: number;
    initialPosition?: Vector2D;
    mass?: number;
    fixed?: boolean;
}
/**
 * Layout configuration
 */
export interface PhysicsLayoutConfig {
    elements: LayoutElement[];
    containerWidth: number;
    containerHeight: number;
    padding?: number;
    spacing?: number;
    attraction?: number;
    repulsion?: number;
    damping?: number;
    mode?: 'grid' | 'flow' | 'force' | 'magnetic' | 'cluster';
}
/**
 * Layout result
 */
export interface LayoutResult {
    positions: Map<string, Vector2D>;
    isStable: boolean;
    iterations: number;
}
/**
 * Hook for physics-based layout
 */
export declare const usePhysicsLayout: (config: PhysicsLayoutConfig) => {
    positions: Map<string, Vector2D>;
    isStable: boolean;
    iterations: number;
    reset: () => void;
    getLayout: () => LayoutResult;
    start: () => void;
    stop: () => void;
    isRunning: boolean;
};
//# sourceMappingURL=usePhysicsLayout.d.ts.map