import type { OntologyView } from '../model/kind-registry.js'; import type { ImportRecipe, ColumnMapping } from './recipes.js'; export type { ColumnMapping }; /** * Infer column mappings for a set of spreadsheet headers. * * Strategy: * 1. If a `recipe` is provided, match each header against recipe.columnMappings * using case-insensitive exact match. * 2. Fall back to a built-in heuristic for common column name patterns. * 3. Unrecognised columns pass through as dynamic attributes (camelCase normalised). * * Returns one ColumnMapping per *input* header. `targetAttribute` is `null` * (represented as empty string) for columns that should be skipped. */ export declare function inferColumnMappings(headers: string[], recipe?: ImportRecipe): ColumnMapping[]; export interface MappedCsvResult { /** Standard elements CSV text ready for parseElementsCsv() */ csv: string; /** Headers that had no mapping and were skipped */ skippedColumns: string[]; /** Warnings about missing required mappings or value transforms */ warnings: string[]; } /** * Apply a set of column mappings to raw spreadsheet rows and produce a * standard MEMO elements CSV string. * * @param rawRows Rows from the source spreadsheet (header → cell value) * @param mappings Mappings returned by inferColumnMappings() * @param config Resolved MEMO config (used to auto-set kind if not mapped) * @param defaultKind Kind to use when no kind column is present */ export declare function applyColumnMappings(rawRows: Record[], mappings: ColumnMapping[], ontology: OntologyView, defaultKind?: string): MappedCsvResult; //# sourceMappingURL=column-mapper.d.ts.map