/** @packageDocumentation
 * @module RpcInterface
 */
import { RpcInterfaceEndpoints } from "../../RpcManager";
import { RpcConfiguration } from "./RpcConfiguration";
import { RpcInvocation } from "./RpcInvocation";
/** An RPC operation control response.
 * @public
 */
export declare abstract class RpcControlResponse {
    message: string;
}
/** A pending RPC operation response.
 * @public
 */
export declare class RpcPendingResponse extends RpcControlResponse {
    /** Extended status regarding the pending operation. */
    message: string;
    /** Constructs a pending response. */
    constructor(message?: string);
}
/** A RPC operation response.
 * @public
 */
export declare class RpcNotFoundResponse extends RpcControlResponse {
    message: string;
}
/** Manages requests and responses for an RPC configuration.
 * @internal
 */
export declare class RpcControlChannel {
    /** @internal */
    static channels: RpcControlChannel[];
    private static _obtainLock;
    private _configuration;
    private _initialized;
    private _clientActive;
    private _describeEndpoints;
    /** @internal */
    static ensureInitialized(): void;
    private constructor();
    /** @internal */
    describeEndpoints(): Promise<RpcInterfaceEndpoints[]>;
    /** @internal */
    static obtain(configuration: RpcConfiguration): RpcControlChannel;
    private _channelInterface;
    private _channelImpl;
    private computeId;
    private activateClient;
    /** @internal */
    initialize(): void;
    /** @internal */
    handleUnknownOperation(invocation: RpcInvocation, _error: any): boolean;
}
//# sourceMappingURL=RpcControl.d.ts.map