export interface LayoutNode {
    id: string;
    width: number;
    height: number;
}
export interface LayoutEdge {
    from: string;
    to: string;
}
/**
 * Compute dynamic width for a node based on its edge degree (connection count).
 * Nodes with many connections get wider to accommodate distributed connection points.
 *
 * @param nodeId - The node identifier
 * @param edges - All edges in the graph
 * @param baseWidth - Minimum width for nodes with few connections (default 300)
 * @param growthPerEdge - Additional width per connection above threshold (default 80)
 * @param threshold - Number of connections before growth kicks in (default 3)
 */
export declare function computeDynamicWidth(nodeId: string, edges: LayoutEdge[], baseWidth?: number, growthPerEdge?: number, threshold?: number): number;
export interface LayoutOptions {
    rankdir?: 'TB' | 'LR' | 'BT' | 'RL';
    nodesep?: number;
    ranksep?: number;
    marginx?: number;
    marginy?: number;
    align?: 'UL' | 'UR' | 'DL' | 'DR';
}
export interface LayoutResult {
    x: number;
    y: number;
    width: number;
    height: number;
}
export declare function computeGraphLayout(nodes: LayoutNode[], edges: LayoutEdge[], options?: LayoutOptions): Promise<Map<string, LayoutResult>>;
