/**
 * @param {import("./flowNode.js").default} node
 * @param {import("./flowNode.js").default} [parent]
 */
export function validateLinks(node: import("./flowNode.js").default, parent?: import("./flowNode.js").default): boolean;
/**
 * Removes possible redundant CloneTransforms that were added during graph construction.
 *
 * @param {import("./flowNode.js").default} node
 */
export function removeRedundantCloneTransforms(node: import("./flowNode.js").default, cloneRequired?: boolean): void;
export function removeRedundantCollectors(): void;
export function combineAndPullCollectorsUp(): void;
/**
 * @param {import("./dataFlow.js").default} dataFlow
 * @returns {Map<import("./sources/dataSource.js").default, import("./sources/dataSource.js").default>}
 */
export function combineIdenticalDataSources(dataFlow: import("./dataFlow.js").default): Map<import("./sources/dataSource.js").default, import("./sources/dataSource.js").default>;
/**
 *
 * @param {import("./flowNode.js").default} root
 */
export function optimizeFlowGraph(root: import("./flowNode.js").default): void;
/**
 * @param {import("./dataFlow.js").default} dataFlow
 * @returns {Map<import("./sources/dataSource.js").default, import("./sources/dataSource.js").default>}
 */
export function optimizeDataFlow(dataFlow: import("./dataFlow.js").default): Map<import("./sources/dataSource.js").default, import("./sources/dataSource.js").default>;
//# sourceMappingURL=flowOptimizer.d.ts.map