/** * Member access type helpers and member name resolution. * Handles type proof checks, member name emission, static type references, * property membership from bindings registry, and plain object type checks. */ import { IrExpression, type IrType } from "@tsonic/frontend"; import { EmitterContext } from "../types.js"; import type { CSharpExpressionAst, CSharpTypeAst } from "../core/format/backend-ast/types.js"; /** * Check if an expression has proven Int32 type from the numeric proof pass. */ export declare const hasInt32Proof: (expr: IrExpression) => boolean; export type MemberAccessUsage = "value" | "call" | "write"; export declare const stripClrGenericArity: (typeName: string) => string; export declare const createStringLiteralExpression: (value: string) => CSharpExpressionAst; export declare const isObjectTypeAst: (typeAst: CSharpTypeAst) => boolean; export declare const isPlainObjectIrType: (type: IrType | undefined, context: EmitterContext) => boolean; export declare const hasSourceDeclaredMember: (receiverType: IrType | undefined, memberName: string, usage: MemberAccessUsage, context: EmitterContext) => boolean; export declare const hasPropertyFromBindingsRegistry: (type: Extract, propertyName: string, context: EmitterContext) => boolean | undefined; export declare const emitMemberName: (receiverExpr: IrExpression, receiverType: IrType | undefined, memberName: string, context: EmitterContext, usage: MemberAccessUsage) => string; /** * Check if an expression represents a static type reference (not an instance) */ export declare const isStaticTypeReference: (expr: Extract, context: EmitterContext) => boolean; //# sourceMappingURL=access-resolution-types.d.ts.map