import { GenericType, Type } from '../../../../core/base/Type'; import { ArkField } from '../../../../core/model/ArkField'; import { ArkClass } from '../../../../core/model/ArkClass'; import { ArkMethod } from '../../../../core/model/ArkMethod'; import { MethodParameter } from '../../../../core/model/builder/ArkMethodBuilder'; import { CxxAstNode, CxxTranslationUnit } from '../../utils/ArkCxxAstNode'; import { Decorator } from '../../../../core/base/Decorator'; /** Clears build-scoped caches for C++ type-string parsing in this module. */ export declare function clearCxxTypeStringCache(): void; export declare function buildModifiers(node: CxxAstNode): number; export declare function buildDecorators(node: CxxAstNode, sourceFile: CxxAstNode): Set; export declare function buildModifiersForCxxClass(cls: ArkClass): number; export declare function buildTypeParameters(clsNode: CxxAstNode, sourceFile: CxxAstNode, arkInstance: ArkMethod | ArkClass): GenericType[]; export declare function buildParameters(params: CxxAstNode[], arkInstance: ArkMethod | ArkField, sourceFile: CxxAstNode): MethodParameter[]; export declare function buildReturnType(mtdNode: CxxAstNode, sourceFile: CxxAstNode, method: ArkMethod): Type; export declare function isCxxFunctionPointer(type: string): boolean; export declare function buildFuncPtrType(funcPtrNode: CxxAstNode, arkMtd: ArkMethod, sourceFile: CxxAstNode | CxxTranslationUnit): Type; /** *Convert C++AST node to Type *@ param nodeQualType - type information of C++AST node or string type *@ param arkInstance - Ark instance (method, class or field) that may contain generic information *@ param sourceFile - optional source file node *@ returns Type after conversion */ export declare function cxxNode2Type(nodeQualType: CxxAstNode, arkInstance: ArkMethod | ArkClass | ArkField | undefined, sourceFile?: CxxAstNode, currNode?: CxxAstNode): Type; /** *The corresponding Type object is constructed according to the pre type string and the optional Ark instance. * *The main processing flow of this function includes: *1 Remove modifiers (such as const, static, mutable); *2 Judge whether it is a function pointer, and handle pointers and references; *3 Type inference to generate basic types; *4 Wrap the final Type object according to the pointer level and the number of references. * *@ param preStr The original pre type string, such as "const int *" or "std:: vector&" *@ param arkInstance The optional ArkMethod, ArkClass or ArkField instances are used to assist type construction *@ returns Type object constructed */ export declare function buildTypeFromPreStr(preStr: string, node: CxxAstNode, arkInstance: ArkMethod | ArkClass | ArkField | undefined): Type; export declare function buildArrayType(qualType: string, node: CxxAstNode, arkInstance: ArkMethod | ArkClass | ArkField | undefined): Type; export declare function buildPointerType(preStr: string, pointerLevel: number, node: CxxAstNode, arkInstance: ArkMethod | ArkClass | ArkField | undefined): Type; export declare function buildReferenceType(preStr: string, referenceCount: number, node: CxxAstNode, arkInstance: ArkMethod | ArkClass | ArkField | undefined): Type; export declare function isCXXSTLContainer(qualType: string): boolean; export declare function isFuncInClassOrNamespace(callNode: CxxAstNode): boolean; export declare function isCxxBasicString(qualType: string): boolean; export declare function buildTypeFromDerivedType(preStr: string, node: CxxAstNode, arkInstance: ArkMethod | ArkClass | ArkField | undefined): Type; export declare function convertDataType(typeName: string): string; //# sourceMappingURL=builderUtils.d.ts.map