export interface ModuleResolutionOptions {
    baseUrl?: string;
    paths?: Record<string, string[]>;
    extensions?: string[];
    moduleDirectories?: string[];
    allowJs?: boolean;
    resolveJsonModule?: boolean;
}
export interface ResolvedModule {
    resolvedPath: string;
    isExternalLibrary: boolean;
    packageName?: string;
    extension: string;
}
export declare class ModuleResolver {
    private options;
    constructor(options?: ModuleResolutionOptions);
    /**
     * Resolve a module specifier to an absolute file path
     */
    resolve(specifier: string, fromFile: string): ResolvedModule;
    private resolveRelative;
    private resolveAbsolute;
    private resolveMappedPath;
    private resolveNodeModules;
    private resolveFile;
    private tryExactPath;
    private tryWithExtensions;
    private tryAsDirectory;
    private tryPackageJsonMain;
    private tryIndexFiles;
    private matchesPattern;
    private applyMapping;
    /**
     * Get all possible file extensions for module resolution
     */
    getExtensions(): string[];
    /**
     * Check if a file extension is supported
     */
    isSupported(extension: string): boolean;
    /**
     * Update resolver options
     */
    updateOptions(options: Partial<ModuleResolutionOptions>): void;
    /**
     * Determine if an absolute path is an OS-level path (like /Users/..., C:\...)
     * vs a project-relative path (like /lib/utils)
     *
     * SECURITY NOTE: This method performs READ-ONLY path classification for module
     * resolution. It does NOT perform file operations or create files in any directory.
     * The actual file operations (reading source files) happen in ModuleLoader with
     * proper error handling and validation. This classification prevents path traversal
     * attacks by ensuring project-relative paths (like /lib/utils) don't escape the
     * project baseUrl.
     *
     * Strategy:
     * 1. Check if path is within or equal to baseUrl (OS path)
     * 2. Check if path matches common OS directory patterns
     * 3. Otherwise assume it's project-relative (resolved relative to baseUrl)
     *
     * @param absolutePath - The absolute path to classify
     * @returns true if this is an OS-level filesystem path, false if project-relative
     */
    private isOsLevelAbsolutePath;
}
//# sourceMappingURL=module-resolver.d.ts.map