/**
 * Binding Registry - RegistryState type, signature parsing, alias resolution,
 * supertype/base-type helpers, and member overload resolution
 * (single owner + hierarchy walk).
 *
 * All functions in this module are pure (side-effect-free) and operate on an
 * explicit `RegistryState` parameter.
 *
 * Split from binding-registry-resolution.ts for file-size compliance (< 500 LOC).
 */
import type { MemberBinding, TypeBinding, SimpleBindingDescriptor } from "./binding-types.js";
/**
 * Read-only view of the BindingRegistry internal state.
 *
 * Resolution functions receive this instead of accessing `this` so they can
 * live in a separate module without coupling to the class definition.
 */
export type RegistryState = {
    readonly types: ReadonlyMap<string, TypeBinding>;
    readonly memberOverloads: ReadonlyMap<string, MemberBinding[]>;
    readonly clrTypeNamesByAlias: ReadonlyMap<string, Set<string>>;
    readonly extensionMethods: ReadonlyMap<string, ReadonlyMap<string, ReadonlyMap<string, MemberBinding[]>>>;
    readonly tsSupertypes: ReadonlyMap<string, Set<string>>;
    readonly tsBaseTypes: ReadonlyMap<string, string>;
    readonly simpleBindings: ReadonlyMap<string, SimpleBindingDescriptor>;
    readonly simpleGlobalBindings: ReadonlyMap<string, SimpleBindingDescriptor>;
    readonly simpleModuleBindings: ReadonlyMap<string, SimpleBindingDescriptor>;
    readonly typeLookupAliasMap: ReadonlyMap<string, string>;
    readonly clrTypeNames: ReadonlySet<string>;
};
/**
 * Split a comma-delimited type list, respecting nested bracket depth.
 * tsbindgen signatures use CLR-style nested generic brackets in some contexts.
 */
export declare const splitSignatureTypeList: (str: string) => string[];
export declare const resolveLookupAlias: (state: RegistryState, typeAlias: string) => string;
export declare const getDirectSupertypes: (state: RegistryState, typeAlias: string) => readonly string[];
/**
 * Look up all member bindings for a TS type alias + member alias.
 *
 * IMPORTANT: Methods can be overloaded, and overloads can differ in ref/out/in
 * modifiers (tsbindgen provides these via `parameterModifiers`). This accessor
 * preserves overload sets so the call converter can select the correct one.
 */
export declare const resolveMemberOverloads: (state: RegistryState, typeAlias: string, memberAlias: string, preferredClrOwner?: string) => readonly MemberBinding[] | undefined;
//# sourceMappingURL=binding-registry-resolution-member.d.ts.map