/** @packageDocumentation
 * @module RpcInterface
 */
import { RpcInterfaceDefinition } from "../../RpcInterface";
import { RpcProtocolEvent } from "../core/RpcConstants";
import { RpcInvocation } from "../core/RpcInvocation";
import { RpcOperation } from "../core/RpcOperation";
import { SerializedRpcOperation, SerializedRpcRequest } from "../core/RpcProtocol";
import { RpcRequest } from "../core/RpcRequest";
import { WebAppRpcRequest } from "./WebAppRpcRequest";
/** @internal */
export declare abstract class WebAppRpcLogging {
    static initializeBackend(instance: WebAppRpcLogging): void;
    static initializeFrontend(instance: WebAppRpcLogging): void;
    private static get backend();
    private static get frontend();
    static logProtocolEvent(event: RpcProtocolEvent, object: RpcRequest | RpcInvocation): Promise<void>;
    protected abstract logProtocolEvent(event: RpcProtocolEvent, object: RpcRequest | RpcInvocation): Promise<void>;
    protected abstract getHostname(): string;
    protected getRpcInterfaceName(g: string | RpcInterfaceDefinition): string;
    protected findPathIds(path: string): {
        iTwinId: string;
        iModelId: string;
    };
    protected buildOperationDescriptor(operation: RpcOperation | SerializedRpcOperation): string;
    protected logRequest(loggerCategory: string, message: string, object: WebAppRpcRequest | SerializedRpcRequest): void;
    protected logResponse(loggerCategory: string, message: string, object: WebAppRpcRequest | SerializedRpcRequest, status: number, elapsed: number): void;
}
declare global {
    var window: any;
}
//# sourceMappingURL=WebAppRpcLogging.d.ts.map