import { LayerCalculator } from './layerCalculator'; import { BasicGraphOnEdges } from '../../../structs/basicGraphOnEdges'; import { CancelToken } from '../../../utils/cancelToken'; import { NetworkEdge } from './networkEdge'; import { PolyIntEdge } from '../polyIntEdge'; type VertexInfo = { inTree: boolean; lim: number; low: number; parent: NetworkEdge; }; export declare class NetworkSimplex implements LayerCalculator { layers: number[]; graph: BasicGraphOnEdges; networkCancelToken: CancelToken; treeVertices: number[]; vertices: VertexInfo[]; leaves: number[]; get weight(): number; get nodeCount(): number; setLow(v: number, l: number): void; setLim(v: number, l: number): void; setParent(v: number, e: NetworkEdge): void; constructor(graph: BasicGraphOnEdges, cancelToken: CancelToken); GetLayers(): number[]; shiftLayerToZero(): void; addVertexToTree(v: number): void; vertexInTree(v: number): boolean; lim(v: number): number; low(v: number): number; parent(v: number): NetworkEdge; feasibleTree(): void; vertexSourceTargetVal(v: number, treeEdge: NetworkEdge): 0 | 1; incidentEdges(v: number): IterableIterator; allLowCutsHaveBeenDone(v: number): boolean; edgeSourceTargetVal(e: NetworkEdge, treeEdge: NetworkEdge): number; initCutValues(): void; edgeContribution(e: NetworkEdge, w: number): number; initLimLowAndParent(): void; initLowLimParentAndLeavesOnSubtree(curLim: number, v: number): void; updateLimLowLeavesAndParentsUnderNode(l: number): void; slack(e: NetworkEdge): number; getNonTreeEdgeIncidentToTheTreeWithMinimalAmountOfSlack(): NetworkEdge; tightTree(): number; leaveEnterEdge(): { leaving: NetworkEdge; entering: NetworkEdge; }; exchange(e: NetworkEdge, f: NetworkEdge): void; updateLayersUnderNode(l: number): void; updateCuts(e: NetworkEdge): void; createPathForCutUpdates(e: NetworkEdge, f: NetworkEdge, l: number): void; commonPredecessorOfSourceAndTargetOfF(f: NetworkEdge): number; checkCutValues(): void; initLayers(): number[]; run(): void; } export {};