import type { ParsedDocument } from './parser-utils.js'; /** A registered package with its contents */ export interface PackageEntry { /** Fully qualified package name */ qualifiedName: string; /** Whether this is a library package (definitions only, no instances) */ isLibrary: boolean; /** Element IDs directly contained in this package */ elementIds: string[]; /** Import paths declared in this package */ imports: ImportEntry[]; /** Child package names */ children: string[]; /** Source file path */ file: string; } /** A parsed import declaration */ export interface ImportEntry { /** Full import path, e.g. "MEMO_Ontology_Risk::*" */ path: string; /** The package being imported, e.g. "MEMO_Ontology_Risk" */ packageName: string; /** Whether this is a wildcard import (::* or ::**) */ isWildcard: boolean; /** Whether the wildcard is recursive (::**): nested packages' members too */ isRecursive?: boolean; /** Specific name imported (for named imports), e.g. "Hazard" */ namedImport?: string; } /** * Registry of all packages across parsed documents. * Provides qualified name resolution using import visibility. */ export declare class PackageRegistry { /** All registered packages by qualified name */ private packages; /** Element ID → containing package qualified name */ private elementToPackage; /** Build the registry from parsed documents */ buildFromDocuments(documents: ParsedDocument[]): void; /** Register an element as belonging to a package */ registerElement(elementId: string, packageName: string): void; /** Get the package containing an element */ getPackageForElement(elementId: string): string | undefined; /** Get all registered packages */ getPackages(): Map; /** Get a package by qualified name */ getPackage(qualifiedName: string): PackageEntry | undefined; /** Check if a package is marked as a library package */ isLibraryPackage(qualifiedName: string): boolean; /** * Resolve a qualified name reference from within a given package context. * * Resolution order: * 1. Local lookup — element exists in the same package * 2. Wildcard imports — search all packages imported with ::* * 3. Named imports — exact match on imported name * 4. Global fallback — search all elements (backward compat) */ resolveElementId(ref: string, fromPackage: string, allElementIds: Set): string | undefined; private collectPackages; private collectPackage; } //# sourceMappingURL=package-registry.d.ts.map