import { ArkMethod } from '../../../core/model/ArkMethod'; import { ClassType, Type } from '../../../core/base/Type'; import { Local } from '../../../core/base/Local'; import { AbstractExpr, AbstractInvokeExpr, AliasTypeExpr, ArkInstanceInvokeExpr, ArkStaticInvokeExpr } from '../../../core/base/Expr'; import { Scene } from '../../../Scene'; import { ArkClass } from '../../../core/model/ArkClass'; import { ClassSignature, FieldSignature, MethodSignature } from '../../../core/model/ArkSignature'; import { AbstractFieldRef, AbstractRef, ArkInstanceFieldRef, ArkParameterRef } from '../../../core/base/Ref'; import { ArkFile } from '../../../core/model/ArkFile'; import { KeyofTypeExpr, TypeQueryExpr } from '../../../core/base/TypeExpr'; export declare class IRInference { private static inferExportInfos; private static inferImportInfos; static inferFile(file: ArkFile): void; static inferStaticInvokeExpr(expr: ArkStaticInvokeExpr, arkMethod: ArkMethod): AbstractInvokeExpr; static inferStaticInvokeExprByMethodName(methodName: string, arkMethod: ArkMethod, expr: AbstractInvokeExpr): AbstractInvokeExpr; private static processArkExportForMethodAndSignature; static inferInstanceInvokeExpr(expr: ArkInstanceInvokeExpr, arkMethod: ArkMethod): AbstractInvokeExpr; /** * process arkUI function with Annotation @Extend @Styles @AnimatableExtend * @param expr * @param arkMethod * @param methodName */ private static processExtendFunc; static inferFieldRef(ref: ArkInstanceFieldRef, arkMethod: ArkMethod): AbstractRef; private static inferBase; static inferThisLocal(arkMethod: ArkMethod): Local | null; static inferArgs(expr: AbstractInvokeExpr, arkMethod: ArkMethod): void; private static inferArg; static inferRightWithSdkType(leftType: Type, rightType: Type, ackClass: ArkClass): void; static inferArgTypeWithSdk(sdkType: ClassType, scene: Scene, argType: Type): void; private static inferInvokeExpr; private static inferInvokeExprWithArray; private static inferInvokeExprWithFunction; private static inferInvokeExprWithDeclaredClass; private static changePtrInvokeExpr; private static getRealTypes; static replaceMethodSignature(init: MethodSignature, declared: MethodSignature): MethodSignature; private static processForEach; static inferLocal(base: Local, arkMethod: ArkMethod): void; static generateNewFieldSignature(ref: AbstractFieldRef, arkClass: ArkClass, baseType: Type): FieldSignature | null; private static repairType; static inferAnonymousClass(anon: ArkClass | null, declaredSignature: ClassSignature, set?: Set): void; private static assignAnonMethod; private static assignAnonField; static inferAliasTypeExpr(expr: AliasTypeExpr, arkMethod: ArkMethod): AbstractExpr; static inferTypeQueryExpr(expr: TypeQueryExpr, arkMethod: ArkMethod): void; static inferKeyofTypeExpr(expr: KeyofTypeExpr, arkMethod: ArkMethod): void; static inferParameterRef(ref: ArkParameterRef, arkMethod: ArkMethod): AbstractRef; /** * map c++ function declaration to Implementation. * *This function traverses all C++header files to find the corresponding implementation file for each class and method, *And establish the mapping relationship between methods and implementation files */ static mapCxxDeclAndImpl(scene: Scene): void; private static mapClassDeclAndImpl; /** *Implementation method of search method *@ param mtd - Ark method object *@ param headerPath - Header file path *@ param sortedRefFiles - sorted reference file array */ private static findMtdImpl; /** *Get the C++header file reference mapping table * *This function traverses all files and filters out C++source files (.cpp ,.c,.cxx), *Then analyze the import information in these source files, and establish the reference relationship mapping from the header file to the source file. * *@ returns MapThe mapping from the header file path to the source file path array that references the header file */ private static getCxxHeaderFileRefMap; /** *Process import information and establish header file reference relationship mapping *@ param im Import information object, including imported module information *@ param filePath Path of the current file *@ param headerFileRefMap header file reference relationship mapping table, used to record which files are referenced by each header file */ private static processImportInfo; /** *Sort the reference file array, and prioritize the reference files with the same name as the target file *@ param headerFilePath Destination header file path *@ param refFiles Array of reference file paths to be sorted *@ returns The array of reference file paths sorted, with files with the same name first and other files second */ private static sortRefFiles; private static mapHeaderToSource; private static getClassWithNameAndNamespace; private static getMatchedMtdImpl; private static processMethodDeclAndImpl; } //# sourceMappingURL=IRInference.d.ts.map