import { type SkillDiscoveryAdoptionState, type SkillDiscoveryCoverage, type SkillDiscoveryIndex, type SkillRouteNormalizationRejection, type SkillRouteResolutionState, type SkillRouteUsabilityReason } from "./skill-discovery.js"; export declare const SKILL_DISCOVERY_DIFF_SCHEMA_VERSION: "renma.skill-discovery-diff.v1"; export interface SkillDiscoveryDiffSkill { id: string; path: string; } export interface SkillDiscoveryDiffSummary { publishedEntrypointCountDelta: number; routeEligibleSkillCountDelta: number; reachableSkillCountDelta: number; notReachedSkillCountDelta: number; unroutedSkillCountDelta: number; usableRouteCountDelta: number; unusableRouteCountDelta: number; unresolvedRouteCountDelta: number; cycleComponentCountDelta: number; } export interface SkillDiscoveryRouteDiffCandidate { id: string; path: string; kind: string; } export interface SkillDiscoveryRouteDiffTarget { id: string; path: string; kind: string; lifecycle?: string; } export interface SkillDiscoveryRouteDiffState { sourceId: string; sourcePath: string; normalizedTarget: string; declarationCount: number; resolution: SkillRouteResolutionState; normalizationRejection?: SkillRouteNormalizationRejection; candidates: SkillDiscoveryRouteDiffCandidate[]; resolvedTarget?: SkillDiscoveryRouteDiffTarget; usable: boolean; usabilityReasons: SkillRouteUsabilityReason[]; } export interface SkillDiscoveryRouteDiffIdentity { sourcePath: string; normalizedTarget: string; } export type SkillDiscoveryRouteChangedField = "sourceId" | "declarationCount" | "resolution" | "normalizationRejection" | "candidates" | "resolvedTarget" | "targetLifecycle" | "usable" | "usabilityReasons"; export interface SkillDiscoveryRouteChange { identity: SkillDiscoveryRouteDiffIdentity; changedFields: SkillDiscoveryRouteChangedField[]; from: SkillDiscoveryRouteDiffState; to: SkillDiscoveryRouteDiffState; } export interface SkillDiscoveryCycleDiff { skillIds: string[]; skills: SkillDiscoveryDiffSkill[]; selfLoop: boolean; } export interface SkillDiscoveryDiff { schemaVersion: typeof SKILL_DISCOVERY_DIFF_SCHEMA_VERSION; adoption: { from: SkillDiscoveryAdoptionState; to: SkillDiscoveryAdoptionState; changed: boolean; }; coverage: { from: SkillDiscoveryCoverage["mode"]; to: SkillDiscoveryCoverage["mode"]; changed: boolean; }; summary: SkillDiscoveryDiffSummary; publishedEntrypoints: { added: SkillDiscoveryDiffSkill[]; removed: SkillDiscoveryDiffSkill[]; }; reachability: { newlyReachable: SkillDiscoveryDiffSkill[]; newlyNotReached: SkillDiscoveryDiffSkill[]; }; unroutedSkills: { newlyUnrouted: SkillDiscoveryDiffSkill[]; resolvedUnrouted: SkillDiscoveryDiffSkill[]; }; routes: { added: SkillDiscoveryRouteDiffState[]; removed: SkillDiscoveryRouteDiffState[]; changed: SkillDiscoveryRouteChange[]; }; cycles: { added: SkillDiscoveryCycleDiff[]; resolved: SkillDiscoveryCycleDiff[]; }; } /** Compare only deterministic facts from two already prepared Discovery indexes. */ export declare function buildSkillDiscoveryDiff(from: SkillDiscoveryIndex, to: SkillDiscoveryIndex): SkillDiscoveryDiff;