import { FrontierState } from '../../frontier-state.js'; import { TerminationStrategy } from './termination-strategy.js'; /** * Full Pairwise Termination Strategy * * Terminates expansion when every seed pair has achieved overlap. * This is the strictest termination condition, requiring C(N,2) pairwise overlaps. * * **Algorithm**: Build an overlap graph where nodes = frontiers and edges = overlaps. * Terminate when the overlap graph is complete (all possible edges exist). * * **Complexity**: O(N²) where N = number of seeds (frontiers) * * **Thesis Alignment**: This strategy ensures maximum connectivity between all * seed regions, providing the strongest guarantee of a well-sampled between-graph * at the cost of potentially longer execution time. */ export declare class FullPairwiseStrategy implements TerminationStrategy { /** Strategy identifier for naming SUT variants */ readonly id = "full-pairwise"; /** * Check if expansion should terminate based on current state. * * @param allFrontiers - All frontiers in the expansion * @param overlapEvents - All recorded overlap events so far * @param _iteration - Current iteration count (unused) * @returns true if expansion should terminate */ shouldTerminate(allFrontiers: FrontierState[], overlapEvents: readonly { frontierA: number; frontierB: number; }[], _iteration: number): boolean; /** * Get a canonical key for a pair of frontier indices. * * @param a - First frontier index * @param b - Second frontier index * @returns Canonical pair key (sorted) * @private */ private getPairKey; } //# sourceMappingURL=full-pairwise.strategy.d.ts.map