import * as os from "os";
import { LogLevel } from "@itwin/core-bentley";
import { RpcInterfaceEndpoints } from "@itwin/core-common";
/**
 * Performance and Memory statistics of backend
 * @internal
 */
export interface DevToolsStats {
    os: DevToolsOsStats;
    process: DevToolsProcessStats;
}
/**
 * OS stats of backend
 * @internal
 */
export interface DevToolsOsStats {
    platform: NodeJS.Platform;
    hostname: string;
    totalmem: number;
    freemem: number;
    uptime: number;
    cpus: os.CpuInfo[];
    cpuUsage: number;
}
/**
 * Process stats of backend
 * @internal
 */
export interface DevToolsProcessStats {
    uptime: number;
    pid: number;
    ppid: number;
    memoryUsage: NodeJS.MemoryUsage;
}
/** Utility to format the JSON created by DevTools.stats() to include the appropriate units
 * @internal
 */
export declare class DevToolsStatsFormatter {
    private static readonly _megaByteProps;
    private static readonly _percentProps;
    private static readonly _mHzProps;
    private static readonly _secondsProps;
    /** Replacer that includes units - can be used with JSON.stringify()  */
    private static _replacer;
    /** Converts the input stats to another JSON object with the appropriate units setup for various fields */
    static toFormattedJson(stats: any): any;
}
/**
 * Internal diagnostic utility
 * @internal
 */
export declare class DevTools {
    /** Receives a ping and returns true */
    static ping(): boolean;
    private static hrtimeToMS;
    private static bytesToMegaBytes;
    private static evaluateCpuUsage;
    private static evaluateCpus;
    private static evaluateMemoryUsage;
    private static evaluateProcessStats;
    private static evaluateOsStats;
    /** Returns JSON object with backend statistics */
    static stats(): DevToolsStats;
    /** Sets up a log level at the backend and returns the old log level */
    static setLogLevel(inLoggerCategory: string, newLevel: LogLevel): LogLevel | undefined;
    /** Obtains the backend application and iTwin.js Core versions */
    static versions(): Promise<{
        application: string;
        iTwinJs: any;
        availableRpcs: RpcInterfaceEndpoints[];
    }>;
}
//# sourceMappingURL=DevTools.d.ts.map