import type { NativeContractSpecSnapshot } from './native-contract.js'; import type { NativeDeclaredArtifact } from './native-verification-scope.js'; export declare const NATIVE_CONFLICT_RADAR_SCHEMA: "comet.native.conflict-radar.v1"; export declare const NATIVE_CONFLICT_RADAR_LIMITS: Readonly<{ maxChanges: 32; maxSpecsPerChange: 64; maxArtifactsPerChange: 128; maxTotalSpecs: 512; maxTotalArtifacts: 1024; maxSignalsPerRelationship: 8; maxRelationships: 256; maxSerializedBytes: number; maxNameBytes: 128; maxCapabilityBytes: 128; maxArtifactPathBytes: 512; }>; export type NativeConflictClassification = 'definite-conflict' | 'possible-overlap' | 'disjoint'; export type NativeWorkspaceRelationship = 'same' | 'different' | 'unknown'; export interface NativeConflictRadarChangeInput { name: string; revision: number; specs: readonly Pick[]; declaredArtifacts: readonly NativeDeclaredArtifact[]; /** Opaque, already-redacted identity. It is never returned and never affects classification. */ workspaceIdentityHash?: string | null; } export interface NativeCapabilityConflictSignal { kind: 'capability'; certainty: Exclude; capability: string; leftOperation: NativeContractSpecSnapshot['operation']; rightOperation: NativeContractSpecSnapshot['operation']; leftBaseHash: string | null; rightBaseHash: string | null; } export interface NativeArtifactConflictSignal { kind: 'artifact'; certainty: Exclude; leftArtifact: NativeDeclaredArtifact; rightArtifact: NativeDeclaredArtifact; } export type NativeConflictSignal = NativeCapabilityConflictSignal | NativeArtifactConflictSignal; export interface NativeConflictRelationship { left: string; right: string; classification: NativeConflictClassification; workspaceRelationship: NativeWorkspaceRelationship; signalCount: number; signalHash: string; signals: NativeConflictSignal[]; signalsTruncated: boolean; } export interface NativeConflictRadarSnapshot { schema: typeof NATIVE_CONFLICT_RADAR_SCHEMA; workspaceIdentityAdvisoryOnly: true; changeCount: number; relationshipCount: number; counts: { definiteConflict: number; possibleOverlap: number; disjoint: number; }; relationships: NativeConflictRelationship[]; relationshipsTruncated: boolean; omittedRelationshipCount: number; radarHash: string; } /** * Compare already-visible changes from one physical Native root. * * Collection and filesystem identity stay outside this pure module. Workspace identity is an * optional advisory projection and cannot change conflict classification. */ export declare function buildNativeConflictRadar(input: readonly NativeConflictRadarChangeInput[]): NativeConflictRadarSnapshot; //# sourceMappingURL=native-conflict-radar.d.ts.map