import type { Diagnostic, SemanticGraph, WorkspaceSource } from './compiler.js'; import { type SourceLocation } from './source-document.js'; export interface AdapterSubjectMapping { readonly native: string; readonly external: string; readonly type: 'concept' | 'relationship'; } export interface AdapterMapping { readonly format: 'yarramate/adapter-mapping/v1'; readonly id: string; readonly version: string; readonly adapter: string; readonly mappings: readonly AdapterSubjectMapping[]; } export type AdapterMappingLoadResult = { readonly ok: true; readonly mapping: AdapterMapping; } | { readonly ok: false; readonly diagnostics: readonly Diagnostic[]; }; export type AdapterMappingValidationResult = { readonly ok: true; readonly mapping: AdapterMapping; } | { readonly ok: false; readonly diagnostics: readonly Diagnostic[]; }; export type AdapterMappingsValidationResult = { readonly ok: true; readonly mappings: readonly AdapterMapping[]; } | { readonly ok: false; readonly diagnostics: readonly Diagnostic[]; }; export declare function loadAdapterMapping(source: WorkspaceSource): AdapterMappingLoadResult; export declare function adapterMappingLocation(mapping: AdapterMapping, field: 'id' | 'adapter'): SourceLocation; export declare function adapterMappingEntryLocation(mapping: AdapterMapping, entry: AdapterSubjectMapping, field: 'native' | 'external' | 'type'): SourceLocation; export declare function validateAdapterMapping(graph: SemanticGraph, mapping: AdapterMapping): AdapterMappingValidationResult; export declare function validateAdapterMappings(graph: SemanticGraph, mappings: readonly AdapterMapping[]): AdapterMappingsValidationResult;