import { Graph } from 'graphlib';
import { StedGraph, StedNode, StedNodeAvailResult, StedGraphWithAvailability } from './sted-graph-type';
export declare class StedGraphGenerator {
    private stedGraph;
    static recycleNodeName: string;
    static supplyPrefix: RegExp;
    static exhaustPrefix: RegExp;
    private supplyNodes;
    private exhaustNodes;
    private otherNodes;
    private cutoffNodes;
    constructor(graphData: StedGraph);
    print(): void;
    generateGraph(stedNodeList: StedNode[]): Graph;
    prepareStedNodes(): StedGraph;
    findAllCycles(stedGraph: StedGraph): any[];
    findCycles(stedGraph: StedGraph): string[][];
    sortNodes(stedBaseGraph: StedGraph): string[];
    lineUpTwoNodes(nodes: string[], refGraph: StedGraph): StedNode[];
    findCutoffPoint(cycle: any, stedNodes: StedNode[]): {
        fromNode: string;
        toNode: string;
    };
    sortGraph(cycles: any, stedNodes: StedNode[]): any;
    sortGraphDeprecated(cycles: any, stedNodes: StedNode[]): any;
    _changeNodeOrder(stedGraph: StedGraph, prevNodeIndex: number, toIndex: number, targetNode: StedNode): void;
    _arrangeGraphWithCuttingEdges(stedGraph: StedGraph, cycles: any): StedGraph;
    _reorderStedGraph(tempGraph: StedGraph, baseGraph: StedGraph): StedGraph;
    _checkGraphAvailablity(stedGraph: StedGraph, cycles: any): StedNodeAvailResult;
    run(): StedGraphWithAvailability;
}
