import { JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js";
import { FunctionJp } from "../../Joinpoints.js";
import CMaker from "../cmake/CMaker.js";
export default class Gprofer {
    private _runs;
    private _args;
    private _app;
    private _workingDir;
    private _deleteWorkingDir;
    private _checkReturn;
    private _data;
    private _hotSpots;
    private _cmaker;
    private _gProfer;
    constructor(runs?: number, args?: string[]);
    getCmaker(): CMaker;
    static _EXE_NAME: string;
    protected defaultCmaker(): CMaker;
    protected static _buildName($function: FunctionJp): string;
    setArgs(args: string[]): this;
    setRuns(runs: number): this;
    setCheckReturn(checkReturn: boolean): this;
    setWorkingDir(workingDir: string, deleteWorkingDir: boolean): this;
    profile(): this;
    getHotspotNames(): Record<number, string>;
    writeProfile(path?: JavaClasses.File): void;
    readProfile(path?: JavaClasses.File): void;
    /**
     *
     * May return undefined if the desired function is a system or library function and not available in the source code.
     * */
    getHotspot(rank?: number): FunctionJp | undefined;
    /**
     * Internal method that uses the signature to identify a function.
     * */
    protected _getHotspot(signature: string): FunctionJp | undefined;
    getPercentage($function: FunctionJp): number;
    getCalls($function: FunctionJp): number;
    getSelfSeconds($function: FunctionJp): number;
    getSelfMsCall($function: FunctionJp): number;
    getTotalMsCall($function: FunctionJp): number;
    protected get(type: string, $function: FunctionJp): number;
    print($function: FunctionJp): void;
    removeSystemFunctions(): void;
}
//# sourceMappingURL=Gprofer.d.ts.map