import { Subject } from 'rxjs';
import { DeferredData, Rpc } from '../rpc';
import { RpcSubjectServer } from '../rpc-subject-server';
import { RpcForwardReportData, RpcForwardResponse } from './rpc-forward-model';
import { RpcForwardUpHandler } from './rpc-forward-up-handler';
/**
 * Rpc forward up subject interface.
 */
export interface RpcForwardUpSubject<T> extends Subject<DeferredData<RpcForwardReportData, RpcForwardResponse<T>>> {
}
/**
 * The class to implement forward up with Subject server.
 */
export declare class RpcForwardUpSubjectServer<T> extends RpcSubjectServer<RpcForwardReportData, RpcForwardResponse<T>> implements RpcForwardUpHandler<T> {
    /**
     * Initializes a new instance of the RpcForwardUpSubjectServer class.
     */
    constructor(rpc: Rpc);
    /**
     * The handler to respond a request for RpcAzureRequest call.
     *
     * @param data The RPC azure operation object.
     * @returns return the Promise<void> object.
     */
    handler(data: RpcForwardReportData): Promise<RpcForwardResponse<T>>;
}
