import type { ModuleFact, RepoFacts } from '../../../evaluation/contracts/repo-facts'; import { type C4CompileOptions, type C4Model } from './c4-compiler'; import type { EditBoundaryRule } from './edit-gate'; export declare const C4_BINDING_SCHEMA_VERSION = "1.0.0"; export declare const C4_BINDING_HASH_ALGORITHM = "sha256"; export type C4BindingSignalKind = 'declared-path' | 'declared-import' | 'name-match' | 'segment-match' | 'layer-match'; export interface C4BindingSignal { readonly kind: C4BindingSignalKind; readonly weight: number; readonly detail: string; } export interface C4BindingCandidate { readonly elementId: string; readonly modulePrefix: string; readonly moduleCount: number; readonly confidence: number; readonly signals: readonly C4BindingSignal[]; } export interface C4BindingProposal { readonly elementId: string; readonly elementName: string; readonly candidates: readonly C4BindingCandidate[]; } export interface C4BindingProposalSet { readonly schemaVersion: string; readonly determinism: 'probabilistic'; readonly factsContentHash: string; readonly proposals: readonly C4BindingProposal[]; } export interface ConfirmedC4Binding { readonly elementId: string; readonly modulePrefix: string; readonly importPrefix: string; readonly confirmedBy: string; readonly confirmedAt: string; readonly approvalId?: string; readonly proposedConfidence: number; } export interface C4BindingMap { readonly schemaVersion: string; readonly version: number; readonly contentHash: string; readonly factsContentHash: string; readonly bindings: readonly ConfirmedC4Binding[]; readonly supersedes?: string; } export interface ProposeC4BindingsOptions { readonly minConfidence?: number; readonly maxCandidatesPerElement?: number; readonly minModuleCount?: number; readonly maxDepth?: number; } export declare function modulePrefixes(modules: readonly ModuleFact[], maxDepth: number): Map; }>; export declare function proposeC4Bindings(model: C4Model, facts: RepoFacts, options?: ProposeC4BindingsOptions): C4BindingProposalSet; export declare function canonicalizeC4BindingMap(map: C4BindingMap): string; export declare function computeC4BindingMapHash(map: C4BindingMap): string; export declare function emptyC4BindingMap(factsContentHash: string): C4BindingMap; export declare class C4BindingConfirmationError extends Error { constructor(message: string); } export interface ConfirmC4BindingInput { readonly elementId: string; readonly modulePrefix: string; readonly importPrefix?: string; readonly confirmedBy: string; readonly confirmedAt: string; readonly approvalId?: string; readonly proposedConfidence: number; } export declare function confirmC4Binding(map: C4BindingMap, input: ConfirmC4BindingInput, factsContentHash?: string): C4BindingMap; export declare function applyC4BindingMap(model: C4Model, map: C4BindingMap): C4Model; export declare function compileConfirmedC4Bindings(model: C4Model, map: C4BindingMap, options?: C4CompileOptions): EditBoundaryRule[]; export declare function serializeConfirmedBoundaryRules(model: C4Model, map: C4BindingMap, options?: C4CompileOptions): string; export declare function unboundC4Elements(model: C4Model, map: C4BindingMap): readonly string[];