import type { Concept } from './models/concept.js';
import { Register } from './models/register.js';
/**
* Read all v2 glossarist concept YAML files from a directory, then
* merge in any per-file hyperedge YAMLs from `
/relations/`.
*
* Per-file hyperedge storage (concept-model PR #83): each file at
* `relations//.yaml` is loaded and merged
* into the corresponding Concept.relations array. If the directory
* does not exist, no per-file hyperedges are loaded (concepts still
* get any inline hyperedges from their own YAML).
*
* @param {string} dir - path to directory containing concept YAML files
* @returns {import('./models/concept.js').Concept[]}
* @throws {InvalidInputError} if dir is missing or empty
*
* @example
* const concepts = readConcepts('./geolexica-v2/');
* console.log(concepts[0].localization('eng').terms[0].designation);
*/
export declare function readConcepts(dir: string): Concept[];
/**
* Read a single concept file by ID from a directory, then merge in
* any per-file hyperedge YAMLs for that concept from
* `/relations//`.
*
* @param {string} dir - path to directory containing concept YAML files
* @param {string} id - concept identifier (filename without .yaml)
* @returns {import('./models/concept.js').Concept | null}
* @throws {InvalidInputError} if dir or id is missing or empty
*
* @example
* const concept = readConcept('./geolexica-v2/', '3.1.1.1');
* if (concept) console.log(concept.termid);
*/
export declare function readConcept(dir: string, id: string): Concept | null;
/**
* List all concept IDs in a directory, optionally filtered by prefix.
* @param {string} dir - path to directory
* @param {string} [prefix] - optional prefix filter
* @returns {string[]}
* @throws {InvalidInputError} if dir is missing or empty
*
* @example
* const ids = listConceptIds('./geolexica-v2/', '3.1.'); // ['3.1.1.1', '3.1.1.2', ...]
*/
export declare function listConceptIds(dir: string, prefix?: string): string[];
/**
* Read register.yaml from a dataset directory (if present).
* @param {string} dir - path to directory
* @returns {Record | null}
* @throws {InvalidInputError} if dir is missing or empty
*/
export declare function readRegister(dir: string): Register | null;
//# sourceMappingURL=concept-reader.d.ts.map