import { DevToolsRpcInterface, DevToolsStatsOptions, RpcInterface, RpcManager } from "@itwin/core-common";
import { DevTools, DevToolsStatsFormatter } from "../DevTools";
/** The backend implementation of DevToolsRpcInterface.
 * @internal
 */
export class DevToolsRpcImpl extends RpcInterface {
    static register() { RpcManager.registerImpl(DevToolsRpcInterface, DevToolsRpcImpl); }
    // Returns true if the backend received the ping
    async ping(_tokenProps) {
        return DevTools.ping();
    }
    // Returns JSON object with statistics
    async stats(_tokenProps, options) {
        const stats = DevTools.stats();
        if (options === DevToolsStatsOptions.None)
            return stats;
        const formattedStats = DevToolsStatsFormatter.toFormattedJson(stats);
        return formattedStats;
    }
    // Returns JSON object with backend versions (application and iModelJs)
    async versions(_tokenProps) {
        return DevTools.versions();
    }
    // Sets up a log level at the backend
    async setLogLevel(_tokenProps, loggerCategory, logLevel) {
        return DevTools.setLogLevel(loggerCategory, logLevel);
    }
}
//# sourceMappingURL=DevToolsRpcImpl.js.map