import type { CanonicalFieldRole } from './canonical-model'; import type { ImportDiagnostic, ImportProcessingState, ImportProcessorReference, SourceLocator } from './import-intermediate'; import type { FieldRoleAlternative, RecognitionConfidence, RecognitionDecisionSource, RecognitionEvidence } from './import-recognition'; import type { SourceFieldCandidate } from './source-extraction'; export interface CandidateFieldMappingDecision { id: string; fieldKey: string; sourceLabel: string; sourceScope: Pick; proposedRole: CanonicalFieldRole | null; appliedRole: CanonicalFieldRole; alternatives: FieldRoleAlternative[]; confidence: RecognitionConfidence; evidence: RecognitionEvidence[]; decisionSource: RecognitionDecisionSource; requiresConfirmation: boolean; } export interface MappedCandidateField extends SourceFieldCandidate { mappingDecisionId: string; role: CanonicalFieldRole; } export interface MappedFindingCandidate { version: 1; id: string; source: SourceLocator; fields: MappedCandidateField[]; } export interface CandidateMappingResult { version: 1; extractor: ImportProcessorReference; mappingProfile: ImportProcessorReference; fieldDecisions: CandidateFieldMappingDecision[]; candidates: MappedFindingCandidate[]; diagnostics: ImportDiagnostic[]; processing: ImportProcessingState; }