import { VerticalConstraintsForSugiyama } from './VerticalConstraintsForSugiyama';
import { HorizontalConstraintsForSugiyama } from './HorizontalConstraintsForSugiyama';
import { LayerDirectionEnum } from './layerDirectionEnum';
import { PlaneTransformation } from '../../math/geometry/planeTransformation';
import { EdgeRoutingSettings } from '../../routing/EdgeRoutingSettings';
export declare enum SnapToGridByY {
    None = 0,
    Top = 1,
    Bottom = 2
}
export declare class LayoutSettings {
    edgeRoutingSettings: EdgeRoutingSettings;
    minimalWidth: number;
    get MinimalWidth(): number;
    set MinimalWidth(value: number);
    minimalHeight: number;
    get MinimalHeight(): number;
    set MinimalHeight(value: number);
    private nodeSeparation;
    get NodeSeparation(): number;
    set NodeSeparation(value: number);
    packingAspectRatio: number;
    get PackingAspectRatio(): number;
    set PackingAspectRatio(value: number);
}
export declare class SugiyamaLayoutSettings extends LayoutSettings {
    margins: {
        left: number;
        top: number;
        bottom: number;
        right: number;
    };
    sameRanks: string[][];
    verticalConstraints: VerticalConstraintsForSugiyama;
    horizontalConstraints: HorizontalConstraintsForSugiyama;
    NoGainAdjacentSwapStepsBound: number;
    RepetitionCoefficientForOrdering: number;
    AspectRatio: number;
    MaxNumberOfPassesInOrdering: number;
    BrandesThreshold: number;
    LabelCornersPreserveCoefficient: number;
    MinNodeHeight: number;
    MinNodeWidth: number;
    SnapToGridByY: SnapToGridByY;
    yLayerSep: number;
    transform: PlaneTransformation;
    get LayerSeparation(): number;
    set LayerSeparation(value: number);
    ActualLayerSeparation(layersAreDoubled: boolean): number;
    GridSizeByY: number;
    GridSizeByX: number;
    constructor();
    transformIsRotation(ang: number): boolean;
    get layerDirection(): LayerDirectionEnum;
    set layerDirection(value: LayerDirectionEnum);
}
