import AbstractBasicSorter from './AbstractBasicSorter';
import RootedTreeSet from './RootedTreeSet';
import Node from './Node';
import PositionType from '../PositionType';
declare class SymmetricSorter extends AbstractBasicSorter {
    /**
     * Predict the order and position of a dragged node.
     */
    predict(graph: RootedTreeSet, parent: Node, node: Node, position: PositionType, free?: boolean): [number, PositionType];
    /**
     * @param treeSet
     * @param parent
     * @param child
     * @param order
     * @throws will throw an error if the order is not strictly continuous
     */
    insert(treeSet: RootedTreeSet, parent: Node, child: Node, order: number): void;
    /**
     * @param treeSet
     * @param node
     * @throws will throw an error if the node is in the wrong position */
    detach(treeSet: RootedTreeSet, node: Node): void;
    computeOffsets(treeSet: RootedTreeSet, node: Node): Map<number, PositionType>;
    /**
     * @param treeSet
     * @param node
     * @throws will throw an error if order elements are missing
     */
    verify(treeSet: RootedTreeSet, node: Node): void;
    /**
     * @param treeSet
     * @param child
     * @return direction of the given child from its parent or from the root node, if isolated */
    getChildDirection(treeSet: RootedTreeSet, child: Node): any;
    /** @return {String} the print name of this class */
    toString(): string;
    getVerticalPadding(): number;
    static INTERNODE_VERTICAL_PADDING: number;
    static INTERNODE_HORIZONTAL_PADDING: number;
}
export default SymmetricSorter;
