Files
infocom-systems-design/node_modules/mermaid/dist/diagrams/mindmap/mindmapDb.d.ts
2025-10-03 22:27:28 +03:00

73 lines
2.4 KiB
TypeScript

import type { D3Element } from '../../types.js';
import type { MindmapNode } from './mindmapTypes.js';
import type { LayoutData, Node, Edge } from '../../rendering-util/types.js';
export type MindmapLayoutNode = Node & {
level: number;
nodeId: string;
type: number;
section?: number;
};
export type MindmapLayoutEdge = Edge & {
depth: number;
section?: number;
};
declare const nodeType: {
readonly DEFAULT: 0;
readonly NO_BORDER: 0;
readonly ROUNDED_RECT: 1;
readonly RECT: 2;
readonly CIRCLE: 3;
readonly CLOUD: 4;
readonly BANG: 5;
readonly HEXAGON: 6;
};
export declare class MindmapDB {
private nodes;
private count;
private elements;
private baseLevel?;
readonly nodeType: typeof nodeType;
constructor();
clear(): void;
getParent(level: number): MindmapNode | null;
getMindmap(): MindmapNode | null;
addNode(level: number, id: string, descr: string, type: number): void;
getType(startStr: string, endStr: string): 0 | 2 | 1 | 3 | 4 | 5 | 6;
setElementForId(id: number, element: D3Element): void;
getElementById(id: number): any;
decorateNode(decoration?: {
class?: string;
icon?: string;
}): void;
type2Str(type: number): string;
/**
* Assign section numbers to nodes based on their position relative to root
* @param node - The mindmap node to process
* @param sectionNumber - The section number to assign (undefined for root)
*/
assignSections(node: MindmapNode, sectionNumber?: number): void;
/**
* Convert mindmap tree structure to flat array of nodes
* @param node - The mindmap node to process
* @param processedNodes - Array to collect processed nodes
*/
flattenNodes(node: MindmapNode, processedNodes: MindmapLayoutNode[]): void;
/**
* Generate edges from parent-child relationships in mindmap tree
* @param node - The mindmap node to process
* @param edges - Array to collect edges
*/
generateEdges(node: MindmapNode, edges: MindmapLayoutEdge[]): void;
/**
* Get structured data for layout algorithms
* Following the pattern established by ER diagrams
* @returns Structured data containing nodes, edges, and config
*/
getData(): LayoutData;
getLogger(): Record<import("../../logger.js").LogLevel, {
(...data: any[]): void;
(message?: any, ...optionalParams: any[]): void;
}>;
}
export {};