/** * Backend AST utility functions * * Helpers for extracting information from C# AST nodes without * going through the printer. */ import type { CSharpExpressionAst, CSharpPredefinedTypeKeyword, CSharpQualifiedNameAst, CSharpTypeAst } from "./types.js"; export declare const CSHARP_PREDEFINED_TYPE_KEYWORDS: Set; export declare const isCSharpPredefinedTypeKeyword: (name: string) => name is CSharpPredefinedTypeKeyword; /** * Extract a dotted name string from a C# expression AST. * * Handles identifierExpression, memberAccessExpression, and parenthesized * wrappers. Used for specialization name generation, int-cast analysis, * and diagnostic messages where a human-readable name is needed. * * Falls back to `` for unrecognized shapes (should not occur in * practice for callee/type-name positions). */ export declare const extractCalleeNameFromAst: (ast: CSharpExpressionAst) => string; export declare const stripNullableTypeAst: (type: CSharpTypeAst) => CSharpTypeAst; export declare const globallyQualifyTypeAst: (type: CSharpTypeAst) => CSharpTypeAst; export declare const getIdentifierTypeName: (type: CSharpTypeAst) => string | undefined; export declare const getIdentifierTypeLeafName: (type: CSharpTypeAst) => string | undefined; export declare const normalizeClrQualifiedName: (clrName: string, forceGlobal?: boolean) => string; export declare const clrTypeNameToTypeAst: (clrName: string) => CSharpTypeAst; export declare const stableTypeKeyFromAst: (type: CSharpTypeAst) => string; export declare const stableConcreteTypeKeyFromAst: (type: CSharpTypeAst) => string; export declare const stableClrIdentityKeyFromName: (clrName: string, typeArgumentArity?: number) => string; export declare const astTypeMatchesClrIdentity: (type: CSharpTypeAst, clrNames: Iterable, typeArgumentArity?: number) => boolean; export declare const clrNameMatchesClrIdentity: (clrName: string | undefined, expectedClrNames: Iterable, typeArgumentArity?: number) => boolean; export declare const sameTypeAstSurface: (left: CSharpTypeAst, right: CSharpTypeAst) => boolean; export declare const sameConcreteTypeAstSurface: (left: CSharpTypeAst, right: CSharpTypeAst) => boolean; export declare const stableIdentifierSuffixFromTypeAst: (type: CSharpTypeAst) => string; export declare const qualifiedNameToString: (name: CSharpQualifiedNameAst) => string; export declare const qualifiedNameLeaf: (name: CSharpQualifiedNameAst) => string; //# sourceMappingURL=utils.d.ts.map