import type { WorkflowGraphModel } from "../workflow-graph-model.js";
import type { ElkLayoutResult, LayoutResult, LayoutScope } from "./types.js";
/**
 * Transforms ELK layout output into a {@link LayoutResult}, applying scope
 * filtering to determine which nodes receive new positions.
 *
 * ELK produces center coordinates for nodes. This function converts them
 * to top-left coordinates (React Flow convention: position = top-left corner).
 *
 * Scope filtering (AD-T03-005):
 * - `whole-graph`: all computed positions are included
 * - `selected`: only positions for nodes in the selection set are included
 * - `downstream`: only positions for the target node and all reachable
 *   downstream nodes (via BFS on edges) are included
 *
 * @param elkResult - The raw result from `elk.layout()`.
 * @param scope - Which nodes should receive new positions.
 * @param graph - The original graph (needed for downstream traversal).
 * @param durationMs - Wall-clock layout time to include in the result.
 * @param engine - Engine name for attribution.
 */
export declare function postprocessElkResult(elkResult: ElkLayoutResult, scope: LayoutScope, graph: WorkflowGraphModel, durationMs: number, engine: string): LayoutResult;
//# sourceMappingURL=layout-postprocessor.d.ts.map