/** * Receiver type resolution, array wrapper element type emission, * reification, and storage-compatible narrowed member read helpers. */ import { IrExpression, type IrType } from "@tsonic/frontend"; import type { NarrowedBinding } from "../types.js"; import { EmitterContext } from "../types.js"; import type { CSharpExpressionAst, CSharpTypeAst } from "../core/format/backend-ast/types.js"; export declare const eraseOutOfScopeArrayWrapperTypeParameters: (typeAst: CSharpTypeAst, context: EmitterContext) => CSharpTypeAst; export declare const emitArrayWrapperElementTypeAst: (receiverType: IrType | undefined, fallbackElementType: IrType, context: EmitterContext) => [CSharpTypeAst, EmitterContext]; export declare const emitStorageCompatibleArrayWrapperElementTypeAst: (receiverExpr: IrExpression, receiverType: IrType | undefined, fallbackElementType: IrType, context: EmitterContext) => [CSharpTypeAst, EmitterContext]; export declare const maybeReifyErasedArrayElement: (accessAst: CSharpExpressionAst, receiverExpr: IrExpression, desiredType: IrType | undefined, context: EmitterContext) => [CSharpExpressionAst, EmitterContext]; export declare const maybeReifyStorageErasedMemberRead: (accessAst: CSharpExpressionAst, expr: Extract, context: EmitterContext, expectedType: IrType | undefined) => [CSharpExpressionAst, EmitterContext]; export declare const tryEmitStorageCompatibleNarrowedMemberRead: (narrowed: Extract, expr: Extract, context: EmitterContext, expectedType: IrType | undefined) => [CSharpExpressionAst, EmitterContext] | undefined; export declare const tryEmitMaterializedNarrowedMemberRead: (narrowed: Extract, context: EmitterContext, expectedType: IrType | undefined) => [CSharpExpressionAst, EmitterContext] | undefined; export declare const resolveEffectiveReceiverType: (receiverExpr: IrExpression, context: EmitterContext) => IrType | undefined; export declare const tryEmitBroadArrayAssertionReceiverStorageAst: (receiverExpr: IrExpression, context: EmitterContext) => [CSharpExpressionAst, EmitterContext] | undefined; export declare const resolveEmittedReceiverTypeAst: (receiverExpr: IrExpression, context: EmitterContext) => [CSharpTypeAst | undefined, EmitterContext]; //# sourceMappingURL=access-resolution-receivers.d.ts.map