import { Graph } from '../../../algorithms/graph/graph'; import { Path } from '../../../algorithms/types/algorithm-results'; import { Edge, Node } from '../../../algorithms/types/graph'; /** * Configuration for planted path generation. */ export interface PlantedPathConfig { /** Type marker for N (unused but required for type inference) */ _nodeType?: N; /** Type marker for E (unused but required for type inference) */ _edgeType?: E; /** Number of ground truth paths to plant */ numPaths: number; /** Path length range (number of edges) */ pathLength: { min: number; max: number; }; /** MI signal strength (higher = more distinguishable) */ signalStrength: "weak" | "medium" | "strong"; /** Whether planted paths should share nodes */ allowOverlap: boolean; /** Random seed for reproducibility */ seed?: number; /** Source node IDs to start paths from (optional) */ sourceNodes?: string[]; /** Target node IDs to end paths at (optional) */ targetNodes?: string[]; } /** * Result of path planting. */ export interface PlantedPathResult { /** Modified graph with planted paths */ graph: Graph; /** Ground truth paths (in order of "true" relevance) */ groundTruthPaths: Path[]; /** Relevance scores for each path */ relevanceScores: Map; /** Metadata about planting */ metadata: { nodesAdded: number; edgesAdded: number; avgPathMI: number; }; } /** * Plant ground truth paths in a graph for evaluation. * * Creates paths with controlled MI characteristics: * - Strong signal: High MI edges, clear separation from noise * - Medium signal: Moderate MI, some ambiguity * - Weak signal: Low MI delta, challenging to detect * * @template N - Node type * @template E - Edge type * @param baseGraph - Graph to modify * @param config - Planting configuration * @returns Graph with planted paths and ground truth */ export declare const plantGroundTruthPaths: (baseGraph: Graph, config: PlantedPathConfig) => PlantedPathResult; //# sourceMappingURL=path-generator.d.ts.map