import { Subject } from 'rxjs';
import { DeferredData, Rpc } from '../rpc';
import { RpcSubjectServer } from '../rpc-subject-server';
import { RpcElectronOperation, RpcElectronOperationResult } from './rpc-electron-model';
import { RpcElectronRequestHandler } from './rpc-electron-request-handler';
/**
 * Rpc electron request subject interface.
 */
export interface RpcElectronRequestSubject extends Subject<DeferredData<RpcElectronOperation, RpcElectronOperationResult>> {
}
/**
 * The class to implement RpcElectronRequest with Subject server.
 */
export declare class RpcElectronRequestSubjectServer extends RpcSubjectServer<RpcElectronOperation, RpcElectronOperationResult> implements RpcElectronRequestHandler {
    /**
     * Initializes a new instance of the RpcElectronRequestSubjectServer class.
     */
    constructor(rpc: Rpc);
    /**
     * The handler to respond a request for RpcElectronRequest call.
     *
     * @param data The RPC electron operation object.
     * @returns return the Promise<void> object.
     */
    handler(data: RpcElectronOperation): Promise<RpcElectronOperationResult>;
}
