import type { LayoutEngine, LayoutOptions } from "../editor";
import type { ElkLike } from "./types";
export interface CreateElkEngineOptions {
    /** Default direction — TB / BT / LR / RL. Defaults to TB. */
    direction?: LayoutOptions["direction"];
    /** Default node-to-node spacing within a layer (default 60). */
    nodeSpacing?: number;
    /** Default layer-to-layer spacing (default 80). */
    rankSpacing?: number;
    /** Override the algorithm. Defaults to `layered` (Sugiyama). */
    algorithm?: "layered" | "mrtree" | "force" | "stress" | "radial" | "disco" | "rectpacking" | "box";
}
/**
 * Build a `LayoutEngine` backed by a consumer-supplied `elkjs` instance.
 *
 * The consumer is responsible for constructing the ELK instance (which
 * may or may not run in a Web Worker — that's a `workerUrl` constructor
 * option on their end). Our adapter just calls `elk.layout(graph)` and
 * patches positions back.
 */
export declare function createElkEngine(elk: ElkLike, defaults?: CreateElkEngineOptions): LayoutEngine;
//# sourceMappingURL=elk.d.ts.map