import { SortingNodeWithDependencies } from './sort-nodes-by-dependencies.js'
/**
 * Checks if one node has a dependency on another node.
 *
 * Determines whether sortingNode1 depends on sortingNode2 by checking if any of
 * sortingNode1's dependency names match any of sortingNode2's dependencies.
 * This is used in dependency-aware sorting to ensure that dependent nodes are
 * placed after their dependencies.
 *
 * Returns false for self-dependency (when both nodes are the same) to prevent
 * circular dependency issues.
 *
 * @example
 *
 * ```ts
 * const nodeA = {
 *   name: 'userService',
 *   dependencies: ['userService'],
 *   dependencyNames: ['logger', 'database'],
 * }
 *
 * const nodeB = {
 *   name: 'logger',
 *   dependencies: ['logger'],
 *   dependencyNames: [],
 * }
 *
 * isNodeDependentOnOtherNode(nodeA, nodeB)
 * // Returns: true (userService depends on logger)
 *
 * isNodeDependentOnOtherNode(nodeB, nodeA)
 * // Returns: false (logger doesn't depend on userService)
 *
 * isNodeDependentOnOtherNode(nodeA, nodeA)
 * // Returns: false (self-dependency check)
 * ```
 *
 * @param sortingNode1 - The node to check for dependencies.
 * @param sortingNode2 - The potential dependency node.
 * @returns True if sortingNode1 depends on sortingNode2, false otherwise.
 */
export declare function isNodeDependentOnOtherNode(
  sortingNode1: Pick<
    SortingNodeWithDependencies,
    'dependencyNames' | 'dependencies'
  >,
  sortingNode2: Pick<
    SortingNodeWithDependencies,
    'dependencyNames' | 'dependencies'
  >,
): boolean
