import { Subject } from 'rxjs';
import { DeferredData, Rpc } from '../rpc';
import { RpcSubjectServer } from '../rpc-subject-server';
import { RpcReportHandler } from './rpc-report-handler';
import { RpcReportDataInbound, RpcReportDataInternal } from './rpc-report-model';
/**
 * Rpc report subject interface.
 */
export interface RpcReportSubject extends Subject<DeferredData<RpcReportDataInbound, void>> {
}
/**
 * The class to implement report with Subject server.
 */
export declare class RpcReportSubjectServer extends RpcSubjectServer<RpcReportDataInbound, void> implements RpcReportHandler {
    /**
     * Initializes a new instance of the RpcReportSubjectServer class.
     */
    constructor(rpc: Rpc);
    /**
     * The handler to respond a request for report call.
     *
     * @param data The report object.
     * @return Promise<void> the promise object.
     */
    handler(data: RpcReportDataInternal): Promise<void>;
}
