/**
 * Binding Registry - extension method resolution and type/subtype checking.
 *
 * 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 } from "./binding-types.js";
import type { RegistryState } from "./binding-registry-resolution-member.js";
/**
 * Resolve an extension method binding target by extension interface name.
 *
 * @param extensionInterfaceName - e.g. "__Ext_System_Linq_IEnumerable_1"
 * @param methodTsName - e.g. "where"
 */
export declare const resolveExtensionMethod: (state: RegistryState, extensionInterfaceName: string, methodTsName: string, callArgumentCount?: number) => MemberBinding | undefined;
/**
 * Resolve an extension method binding target by explicit (namespaceKey, receiverTypeName).
 *
 * Used when extension methods are emitted as method-table members with explicit `this:`
 * receiver constraints (the declaring interface name no longer encodes the receiver type).
 */
export declare const resolveExtensionMethodByKey: (state: RegistryState, namespaceKey: string, receiverTypeName: string, methodTsName: string, callArgumentCount?: number) => MemberBinding | undefined;
export declare const isTypeOrSubtype: (state: RegistryState, typeAlias: string, superAlias: string) => boolean;
//# sourceMappingURL=binding-registry-resolution-extension.d.ts.map