/**
 * Binding Registry - loading logic for addBindings.
 *
 * This module extracts the `addBindings` body into a free function that
 * mutates the maps owned by the BindingRegistry class via a mutable state
 * parameter.  All pure utility helpers used only during loading live here too.
 */
import type { MemberBinding, TypeBinding, NamespaceBinding, SimpleBindingDescriptor, TsbindgenExport, BindingFile } from "./binding-types.js";
/**
 * Writable view of the BindingRegistry internal state used during loading.
 */
export type MutableRegistryState = {
    readonly loadedBindingFiles: Set<string>;
    readonly sourceOwnedTypeAliases: Set<string>;
    readonly simpleBindings: Map<string, SimpleBindingDescriptor>;
    readonly simpleGlobalBindings: Map<string, SimpleBindingDescriptor>;
    readonly simpleModuleBindings: Map<string, SimpleBindingDescriptor>;
    readonly namespaces: Map<string, NamespaceBinding>;
    readonly types: Map<string, TypeBinding>;
    readonly typeLookupAliasMap: Map<string, string>;
    readonly members: Map<string, MemberBinding>;
    readonly memberOverloads: Map<string, MemberBinding[]>;
    readonly clrMemberOverloads: Map<string, MemberBinding[]>;
    readonly clrTypeNamesByAlias: Map<string, Set<string>>;
    readonly extensionMethods: Map<string, Map<string, Map<string, MemberBinding[]>>>;
    readonly tsbindgenExports: Map<string, Map<string, TsbindgenExport>>;
    readonly tsSupertypes: Map<string, Set<string>>;
    readonly tsBaseTypes: Map<string, string>;
    readonly clrTypeNames: Set<string>;
};
export declare const makeClrMemberKey: (assembly: string, clrType: string, clrMember: string) => string;
/**
 * Extract CLR namespace key ('.' -> '_') from a full CLR type name.
 * Example: "System.Linq.Enumerable" -> "System_Linq"
 */
export declare const extractNamespaceKey: (clrType: string) => string | undefined;
/**
 * Extract the extension receiver TS type name from a tsbindgen normalized signature.
 *
 * Format: "Name|(ParamTypes):ReturnType|static=true"
 * Example: "Where|(IEnumerable_1,Func_2):IEnumerable_1|static=true"
 *
 * Returns the first parameter type name (stripped of byref suffix and namespace prefix).
 */
export declare const extractExtensionReceiverType: (normalizedSignature: string) => string | undefined;
/**
 * Load a binding manifest file and add its bindings to the registry state.
 * Supports simple, full, and tsbindgen formats.
 */
export declare const addBindingsToState: (state: MutableRegistryState, _filePath: string, manifest: BindingFile) => void;
//# sourceMappingURL=binding-registry-loading.d.ts.map