/**
 * AVL ELK Layout
 *
 * Shared ELK-based layout engine for state machines. Extracted from
 * AvlTraitScene so both the V2 scene renderer and the V3 BehaviorView
 * can share the same layout computation.
 */
import { type StateRole } from '../../atoms/avl/types';
import type { TraitLevelData } from '../../organisms/avl/avl-schema-parser';
export interface LayoutNode {
    id: string;
    x: number;
    y: number;
    width: number;
    height: number;
    isInitial?: boolean;
    isTerminal?: boolean;
    role: StateRole;
    transitionCount: number;
}
export interface LayoutEdge {
    id: string;
    from: string;
    to: string;
    event: string;
    effects: Array<{
        type: string;
    }>;
    guard: boolean;
    guardExpr?: string;
    index: number;
    labelX: number;
    labelY: number;
    labelW: number;
    labelH: number;
    points: Array<{
        x: number;
        y: number;
    }>;
    isSelf: boolean;
    isBackward: boolean;
}
export interface ElkLayout {
    nodes: LayoutNode[];
    edges: LayoutEdge[];
    width: number;
    height: number;
}
export declare function stateWidth(transitionCount: number): number;
export declare const STATE_H = 40;
export declare function computeTraitLayout(data: TraitLevelData): Promise<ElkLayout>;
export declare function edgePath(points: Array<{
    x: number;
    y: number;
}>): string;
