import BranchViewController from '../viewController/branchViewController'; import Bounds from '../utils/bounds'; import StructureClass from '../common/constants/structures'; import { ConnectionInfo } from '../view/lineRender/topicLineStyle'; export default abstract class AbstractStructure { abstract calcAttachedChildrenPos(branch: BranchViewController, bounds: Bounds): void; protected calcSpacingMajor(branch: BranchViewController): number; protected getChildrenBounds(branch: BranchViewController): Bounds; getChildStructure(parent: BranchViewController, child: BranchViewController): StructureClass; getAvailableChildStructure(parent: BranchViewController, child: BranchViewController): StructureClass[]; getAttachedConnectionInfo(startBranch: BranchViewController, endBranch: BranchViewController): ConnectionInfo; specialDeal(branch: BranchViewController, bounds: Bounds): void; }