interface RescriptSource { dir: string; subdirs?: boolean; } interface RescriptConfig { name: string; sources: Array; namespace?: boolean; suffix?: string; dependencies?: string[]; } /** * Resolves ReScript module names and @package/* aliases to file paths. */ export declare class ModuleResolver { private codebaseRoot; private config; private packageAliasMap; private sourceRoots; private moduleFileMap; constructor(codebaseRoot: string, config: RescriptConfig); initialize(): Promise; /** * Build a map from @package/* names to actual directory paths * by scanning workspace packages for their package.json "name" fields. */ private buildPackageAliasMap; private tryRegisterPackage; /** * Collect all source directories from rescript.json. */ private collectSourceRoots; /** * Walk all source directories and map module names (filename without extension) to file paths. */ private buildModuleFileMap; private walkDir; /** * Resolve a .bs.js import path to a .res file path relative to codebase root. * Returns null for external/runtime imports. */ resolveImportPath(importPath: string, sourceFile: string): string | null; /** * Resolve a ReScript module name to its source file path. */ resolveModuleName(moduleName: string): string | null; /** * Get all .res files across source directories. */ getAllResFiles(): string[]; /** * Get the module name for a file path. */ getModuleName(filePath: string): string; static loadConfig(codebaseRoot: string): Promise; } export {}; //# sourceMappingURL=module-resolver.d.ts.map