import { Graph } from '../../structs/graph';
import { Rectangle, Size } from '../../math/geometry/rectangle';
import { GeomNode } from './geomNode';
import { GeomEdge } from './geomEdge';
import { PlaneTransformation } from '../../math/geometry/planeTransformation';
import { Point } from '../../math/geometry/point';
import { LayoutSettings } from '../layered/SugiyamaLayoutSettings';
export declare function optimalPackingRunner(geomGraph: GeomGraph, subGraphs: GeomGraph[]): void;
export declare class GeomGraph extends GeomNode {
    setSettingsRecursively(ls: LayoutSettings): void;
    private _layoutSettings;
    get layoutSettings(): LayoutSettings;
    set layoutSettings(value: LayoutSettings);
    translate(delta: Point): void;
    _boundingBox: Rectangle;
    private _labelSize;
    get labelSize(): Size;
    set labelSize(value: Size);
    get boundingBox(): Rectangle;
    set boundingBox(value: Rectangle);
    isGraph(): boolean;
    transform(matrix: PlaneTransformation, updateBoundingBox?: boolean): void;
    deepNodes(): IterableIterator<GeomNode>;
    setEdge(s: string, t: string): GeomEdge;
    MinimalWidth: number;
    MinimalHeight: number;
    pumpTheBoxToTheGraphWithMargins(minSeparation: number): Rectangle;
    get center(): Point;
    set center(value: Point);
    pumpTheBoxToTheGraph(t: {
        b: Rectangle;
    }): void;
    get left(): number;
    get right(): number;
    get top(): number;
    get bottom(): number;
    CheckClusterConsistency(): boolean;
    Margins: number;
    get edgeCount(): number;
    shallowNodes(): IterableIterator<GeomNode>;
    edges(): IterableIterator<GeomEdge>;
    deepEdges(): IterableIterator<GeomEdge>;
    static mk(id: string, labelSize?: Size): GeomGraph;
    subgraphs(): IterableIterator<GeomGraph>;
    static mkWithGraphAndLabel(graph: Graph, labelSize: Size): GeomGraph;
    constructor(graph: Graph);
    get height(): number;
    get width(): number;
    get shallowNodeCount(): number;
    get graph(): Graph;
    liftNode(n: GeomNode): GeomNode;
    findNode(id: string): GeomNode;
    addNode(gn: GeomNode): GeomNode;
    updateBoundingBox(): void;
    addLabelToGraphBB(rect: Rectangle): void;
    FlipYAndMoveLeftTopToOrigin(): void;
}
