import { SUTRegistry } from 'ppef/registry'; import { SutRegistration } from 'ppef/types/sut'; import { BidirectionalBFSResult } from '../algorithms/traversal/bidirectional-bfs.js'; import { DegreePrioritisedExpansionResult } from '../algorithms/traversal/degree-prioritised-expansion.js'; import { OverlapBasedExpansionResult } from '../algorithms/traversal/overlap-based/overlap-result.js'; import { EnsembleExpansionResult } from '../experiments/baselines/ensemble-expansion.js'; import { GraphExpander } from '../interfaces/graph-expander.js'; export { OVERLAP_SUT_REGISTRATIONS, overlapSutRegistry, registerOverlapSuts } from './register-overlap-suts.js'; /** * Domain-specific input type for expansion algorithms. * * This type lives in the domain-specific registration file, not in the core framework. * The core framework remains universal - it doesn't need to know what "expander" or "seeds" mean. */ export interface ExpansionInputs { /** Graph expander for dynamic graph expansion */ expander: GraphExpander; /** Seed node IDs for expansion */ seeds: string[]; /** Optional underlying graph for algorithms that need full graph access (e.g., path ranking) */ graph?: import('../algorithms/graph/graph.js').Graph; } /** * Result type for all expansion SUTs. * * Union type supporting: * - DegreePrioritisedExpansionResult (parameter-free frontier exhaustion) * - BidirectionalBFSResult (parameterised termination: targetPaths, maxIterations) * - OverlapBasedExpansionResult (overlap-based termination) */ export type ExpansionResult = DegreePrioritisedExpansionResult | BidirectionalBFSResult | OverlapBasedExpansionResult | EnsembleExpansionResult; /** * Create a typed SUT registry for expansion algorithms. * * The registry is parameterized with: * - TInputs = ExpansionInputs (domain-specific type) * - TResult = ExpansionResult (algorithm output) */ export type ExpansionSutRegistry = SUTRegistry; /** * SUT registrations for expansion algorithms. */ export declare const SUT_REGISTRATIONS: Record; /** * Register all expansion SUTs with a registry. * * @param registry - Registry to populate (defaults to new instance) * @returns The populated registry */ export declare const registerExpansionSuts: (registry?: ExpansionSutRegistry) => ExpansionSutRegistry; /** * Global expansion SUT registry with all algorithms registered. */ export declare const expansionSutRegistry: ExpansionSutRegistry; //# sourceMappingURL=register-suts.d.ts.map