/**
 * CLR Type Catalog Loader
 *
 * Loads CLR type metadata from tsbindgen <Namespace>/bindings.json files
 * into a queryable catalog structure.
 *
 * INVARIANT INV-CLR: All assembly types loaded here become part of the
 * unified type catalog. No parallel lookup paths allowed.
 *
 * The loader:
 * 1. Loads only explicitly participating CLR package roots
 * 2. Parses bindings.json for type definitions, members, signatures
 * 4. Converts to NominalEntry structures with proper IrType members
 */
import type { AssemblyTypeCatalog, NominalEntry, MemberEntry } from "./types.js";
export { parseClrTypeString, splitTypeArguments, dtsTypeNodeToIrType, irTypeToSignatureKey, makeMethodOverloadKey, INSTANCE_SUFFIX, VIEWS_PREFIX, VIEWS_SUFFIX, stripTsBindgenInstanceSuffix, stripTsBindgenViewsWrapper, getRightmostQualifiedNameText, getRightmostPropertyAccessText, } from "./clr-type-parser.js";
export type { TsBindgenDtsTypeInfo } from "./clr-entry-converter.js";
export { extractHeritageFromTsBindgenDts, enrichAssemblyEntriesFromTsBindgenDts, parsePropertyType, parseFieldType, parseMethodSignature, convertRawType, } from "./clr-entry-converter.js";
/**
 * Load all assembly types from explicitly participating CLR packages.
 *
 * @param _nodeModulesPath - Unused legacy slot preserved for call-site stability
 * until callers are fully migrated to the explicit-roots-only model.
 * @param extraPackageRoots - Explicit CLR package roots participating in this build
 * @returns AssemblyTypeCatalog with all loaded types
 */
export declare const loadClrCatalog: (_nodeModulesPath: string, extraPackageRoots?: readonly string[]) => AssemblyTypeCatalog;
/**
 * Load CLR catalog from a specific package (for testing).
 */
export declare const loadSinglePackageBindings: (bindingsPath: string) => AssemblyTypeCatalog;
/**
 * Get a type entry by stableId.
 */
export declare const getTypeByStableId: (catalog: AssemblyTypeCatalog, stableId: string) => NominalEntry | undefined;
/**
 * Get a type entry by TS name.
 */
export declare const getTypeByTsName: (catalog: AssemblyTypeCatalog, tsName: string) => NominalEntry | undefined;
/**
 * Get a type entry by CLR name.
 */
export declare const getTypeByClrName: (catalog: AssemblyTypeCatalog, clrName: string) => NominalEntry | undefined;
/**
 * Get a member from a type by TS name.
 */
export declare const getMemberByTsName: (catalog: AssemblyTypeCatalog, typeStableId: string, memberTsName: string) => MemberEntry | undefined;
//# sourceMappingURL=clr-catalog.d.ts.map