cs-element
Version:
Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support
48 lines • 3.06 kB
TypeScript
/**
* Реализация менеджера алгоритмов работы с графами
*/
import { EventEmitter } from 'eventemitter3';
import { CSElement } from '../core/CSElement';
import { GraphAlgorithmsManager, GraphAnalysisOptions, PathFindingOptions, CycleDetectionOptions, ComponentAnalysisOptions, PathResult, CycleResult, ComponentResult, GraphAnalysisResult, GraphStatistics, GraphRepresentation, GraphAlgorithmsConfig, AlgorithmMetrics, NodeId, GraphCycle } from '../types/graph-interfaces';
export declare class GraphAlgorithmsManagerImpl extends EventEmitter implements GraphAlgorithmsManager {
private config;
private cache;
private metrics;
constructor(config?: Partial<GraphAlgorithmsConfig>);
findPath(from: CSElement, to: CSElement, options?: PathFindingOptions): Promise<PathResult | null>;
findShortestPath(from: CSElement, to: CSElement, options?: PathFindingOptions): Promise<PathResult | null>;
findAllPaths(from: CSElement, to: CSElement, options?: PathFindingOptions): Promise<PathResult[]>;
detectCycles(root: CSElement, options?: CycleDetectionOptions): Promise<CycleResult>;
hasCycle(root: CSElement, options?: CycleDetectionOptions): Promise<boolean>;
findCycle(root: CSElement, options?: CycleDetectionOptions): Promise<GraphCycle | null>;
findConnectedComponents(root: CSElement, options?: ComponentAnalysisOptions): Promise<ComponentResult>;
findStronglyConnectedComponents(root: CSElement, options?: ComponentAnalysisOptions): Promise<ComponentResult>;
isConnected(root: CSElement, options?: GraphAnalysisOptions): Promise<boolean>;
buildGraph(root: CSElement, options?: GraphAnalysisOptions): Promise<GraphRepresentation>;
analyzeGraph(root: CSElement, options?: GraphAnalysisOptions): Promise<GraphAnalysisResult>;
getGraphStatistics(root: CSElement, options?: GraphAnalysisOptions): Promise<GraphStatistics>;
getDistance(from: CSElement, to: CSElement, options?: GraphAnalysisOptions): Promise<number>;
getNeighbors(node: CSElement, options?: GraphAnalysisOptions): CSElement[];
getDegree(node: CSElement, options?: GraphAnalysisOptions): number;
topologicalSort(root: CSElement, options?: GraphAnalysisOptions): Promise<NodeId[]>;
minimumSpanningTree(root: CSElement, options?: GraphAnalysisOptions): Promise<GraphRepresentation>;
calculateCentrality(root: CSElement, options?: GraphAnalysisOptions): Promise<Map<NodeId, number>>;
private findPathBFS;
private findPathDFS;
private findPathDijkstra;
private findPathAStar;
private detectCyclesDFS;
private detectCyclesTarjan;
private findComponentsDFS;
private findComponentsBFS;
private findComponentsTarjan;
private findComponentsKosaraju;
private calculatePathCost;
private getCacheKey;
private emitEvent;
private updateMetrics;
getMetrics(): AlgorithmMetrics;
clearCache(): void;
configure(config: Partial<GraphAlgorithmsConfig>): void;
}
//# sourceMappingURL=GraphAlgorithmsManagerImpl.d.ts.map