import { FileJp, Program, Call, FunctionJp, Joinpoint } from "@specs-feup/clava/api/Joinpoints.js"; /** * Checks if a file compiles correctly after adding a statement by rebuilding it. * If rebuilding fails, the file is considered invalid with the new statement. * * @param fileJp - The file to validate. */ export declare function isValidFile(fileJp: FileJp, jpType?: typeof Joinpoint, index?: number): boolean | Joinpoint | undefined; /** * Checks if the rebuilt version of the file compiles and if the provided call is no longer implicit. * * @param fileJp The file to analyze * @param funcName The function name to search the call * @param callIndex The index of the call */ export declare function isValidFileWithExplicitCall(fileJp: FileJp, funcName: string, callIndex: number, checkNumParams?: boolean): boolean; /** * Retrieves the list of header files included in the given file * * @param fileJp The file join point * @returns An array of strings with the names of the includes */ export declare function getIncludesOfFile(fileJp: FileJp): Set; /** * Removes a specific include directive from the given file, if it exists * * @param includeName The name of the include to remove * @param fileJp The file from which the include should be removed */ export declare function removeIncludeFromFile(includeName: string, fileJp: FileJp): void; /** * Returns all files in the program that include a given header file using the `#include` directive * * @param headerName - The name of the header file to search for * @returns An array of files that include the specified header */ export declare function findFilesReferencingHeader(headerName: string): FileJp[]; /** * Returns all files in the program that contain at least one call to an implicit function * * @param programJp - The program to analyze * @returns A list of files with implicit function calls */ export declare function getFilesWithCallToImplicitFunction(programJp: Program): FileJp[]; /** * Inserts an extern declaration of the given function into the file. * * @param fileJp The file to modify. * @param functionJp The function to declare as extern. * @returns The inserted join point, or undefined if the function has no external linkage. */ export declare function addExternFunctionDecl(fileJp: FileJp, functionJp: FunctionJp): Joinpoint | undefined; /** * Returns all extern function declarations in the given file * @param fileJp The file join point * @returns An array of functions declared with 'extern' */ export declare function getExternFunctionDecls(fileJp: FileJp): FunctionJp[]; /** * Returns function calls from a file that are defined in the provided library header. Optionally filters by function names. * * @param fileJp The file join point * @param libraryName Header filename * @param functionNames Optional list of function names to filter */ export declare function getCallsToLibrary(fileJp: FileJp, libraryName: string, functionNames?: Set): Call[]; //# sourceMappingURL=FileUtils.d.ts.map