/** * Identifier and type argument emitters */ import { IrExpression, IrType } from "@tsonic/frontend"; import { EmitterContext } from "../types.js"; import type { CSharpExpressionAst, CSharpTypeAst } from "../core/format/backend-ast/types.js"; /** * Emit an identifier as CSharpExpressionAst */ export declare const emitIdentifier: (expr: Extract, context: EmitterContext, expectedType?: IrType) => [CSharpExpressionAst, EmitterContext]; /** * Emit type arguments as CSharpTypeAst[] */ export declare const emitTypeArgumentAsts: (typeArgs: readonly IrType[], context: EmitterContext) => [CSharpTypeAst[], EmitterContext]; /** * Emit type arguments as typed CSharpTypeAst array. * Returns empty array for empty/null type arguments. */ export declare const emitTypeArgumentsAst: (typeArgs: readonly IrType[], context: EmitterContext) => [readonly CSharpTypeAst[], EmitterContext]; /** * Generate specialized method/class name from type arguments * Example: process with [string, number] → process__string__double */ export declare const generateSpecializedName: (baseName: string, typeArgs: readonly IrType[], context: EmitterContext) => [string, EmitterContext]; //# sourceMappingURL=identifiers.d.ts.map