import type { LayeredLayoutOptions } from "./types";
export type Edge<NodeId> = {
    from: NodeId;
    to: NodeId;
    arrows?: {
        from?: boolean;
        to?: boolean;
    };
};
export type Node<NodeId> = {
    id: NodeId;
    level: number;
    x?: number;
    y?: number;
    width?: number;
    height?: number;
    shape?: string;
};
export declare const DEFAULT_NODE_WIDTH = 100;
export declare const DEFAULT_NODE_HEIGHT = 100;
export type LayoutGraphParams<NodeId extends string | number, T extends Node<NodeId>> = {
    nodes: T[];
    edges: Edge<NodeId>[];
    options?: LayeredLayoutOptions;
};
export declare function layoutGraph<NodeId extends string | number, T extends Node<NodeId> = Node<NodeId>>({ nodes, edges, options, }: LayoutGraphParams<NodeId, T>): Promise<{
    nodes: T[];
    edges: Edge<NodeId>[];
}>;
