import { FileReader } from "./io.js"; import type { Module, MutableModule, RecordKey, RecordLocation, Result, SoiaError } from "./types.js"; export declare class ModuleSet { private readonly moduleParser; static create(fileReader: FileReader, rootPath: string): ModuleSet; constructor(moduleParser: ModuleParser); parseAndResolve(modulePath: string, inProgressSet?: Set): Result; /** Called by `parseAndResolve` when the module is not in the map already. */ private doParseAndResolve; private storeResolvedFieldTypes; private storeFieldRecursivity; private collectTypeDeps; /** * If the record has explicit numbering, register an error if any field has a * direct dependency on a record with implicit numbering. */ private verifyNumberingConstraint; private referencesImplicitlyNumberedRecord; /** * Verifies that the `key` field of every array type found in `topLevelType` * is valid. Populates the `keyType` field of every field path. */ private validateArrayKeys; private valueToDenseJson; private structValueToDenseJson; private enumValueToDenseJson; private getDefaultJson; private readonly modules; private readonly mutableRecordMap; private readonly mutableResolvedModules; private readonly stableIdToRecord; private readonly mutableErrors; get recordMap(): ReadonlyMap; get resolvedModules(): ReadonlyArray; get errors(): readonly SoiaError[]; } export interface ModuleParser { parseModule(modulePath: string): Result; } //# sourceMappingURL=module_set.d.ts.map