import Node from './Node';
import RootedTreeSet from './RootedTreeSet';
import SizeType from '../SizeType';
import PositionType from '../PositionType';
import ChildrenSorterStrategy from './ChildrenSorterStrategy';
declare class OriginalLayout {
    private _treeSet;
    constructor(treeSet: RootedTreeSet);
    createNode(id: number, size: SizeType, position: PositionType, type: string): Node;
    connectNode(parentId: number, childId: number, order: number): void;
    disconnectNode(nodeId: number): void;
    layout(): void;
    private layoutChildren;
    private calculateAlignOffset;
    static _branchIsTaller(node: Node, heightById: Map<number, number>): boolean;
    private fixOverlapping;
    _shiftBranches(node: Node, heightById: Map<number, number>): void;
    static _branchesOverlap(branchA: Node, branchB: Node, heightById: Map<number, number>): boolean;
    static SYMMETRIC_SORTER: ChildrenSorterStrategy;
    static BALANCED_SORTER: ChildrenSorterStrategy;
}
export default OriginalLayout;
