import PluggableElementBase from './PluggableElementBase';
import type PluginManager from '../PluginManager';
import type { UriLocation } from '../util/types';
export type RpcMethodConstructor = new (pm: PluginManager) => RpcMethodType;
export default abstract class RpcMethodType extends PluggableElementBase {
    pluginManager: PluginManager;
    constructor(pluginManager: PluginManager);
    serializeArguments(args: Record<string, unknown>, rpcDriverClassName: string): Promise<Record<string, unknown>>;
    serializeNewAuthArguments(loc: UriLocation, rpcDriverClassName: string): Promise<UriLocation>;
    deserializeArguments<T>(args: T & {
        blobMap?: Record<string, File>;
    }, _rpcDriverClassName: string): Promise<T>;
    abstract execute(serializedArgs: unknown, rpcDriverClassName: string): Promise<unknown>;
    serializeReturn(originalReturn: unknown, _args: unknown, _rpcDriverClassName: string): Promise<unknown>;
    deserializeReturn(serializedReturn: unknown, _args: unknown, _rpcDriverClassName: string): Promise<unknown>;
    private augmentLocationObjects;
}
