/**
 * MemberId-based binding resolution and extension method binding for
 * member access expressions.
 *
 * Handles CLR property/member binding resolution via Binding-resolved MemberId.
 *
 * Split from binding-resolution.ts for file-size compliance (< 500 LOC).
 */
import * as ts from "typescript";
import { IrExpression, IrMemberExpression } from "../../../types.js";
import type { ProgramContext } from "../../../program-context.js";
/**
 * Resolve hierarchical binding for a member access using Binding-resolved MemberId.
 *
 * Uses Binding-resolved MemberId when the frontend already has an exact TS
 * member symbol and needs the corresponding CLR binding target.
 */
export declare const resolveHierarchicalBindingFromMemberId: (node: ts.PropertyAccessExpression, propertyName: string, object: IrExpression, ctx: ProgramContext) => IrMemberExpression["memberBinding"];
/**
 * Resolve instance-style extension method bindings from tsbindgen's `ExtensionMethods` typing.
 *
 * tsbindgen emits extension methods as interface members on `__Ext_*` types, and users
 * opt in via `ExtensionMethods<TShape>`. At runtime those members do not exist, so we
 * must attach the underlying CLR binding so the emitter can lower the call to an
 * explicit static invocation.
 */
export declare const resolveExtensionMethodsBinding: (node: ts.PropertyAccessExpression, propertyName: string, object: IrExpression, ctx: ProgramContext) => IrMemberExpression["memberBinding"];
//# sourceMappingURL=binding-resolution-memberid.d.ts.map