import { Subject } from 'rxjs';
import { DeferredData, Rpc } from '../rpc';
import { RpcSubjectServer } from '../rpc-subject-server';
import { RpcWorkItemHandler } from './rpc-work-item-handler';
import { RpcWorkItem, RpcWorkItemResult } from './rpc-work-item-model';
/**
 * Rpc work item subject interface.
 */
export interface RpcWorkItemSubject extends Subject<DeferredData<RpcWorkItem, RpcWorkItemResult>> {
}
/**
 * The class to implement Rpc work item with Subject server.
 */
export declare class RpcWorkItemSubjectServer extends RpcSubjectServer<RpcWorkItem, RpcWorkItemResult> implements RpcWorkItemHandler {
    /**
     * Initializes a new instance of the RpcWorkItemSubjectServer class.
     */
    constructor(rpc: Rpc);
    /**
     * The handler to respond a request for RpcLog call.
     *
     * @param data The RPC log record object.
     * @returns return the Promise<void> object.
     */
    handler(data: RpcWorkItem): Promise<RpcWorkItemResult>;
}
