import * as grpc from "grpc"; import { Metadata } from "grpc"; import { Observable, Subject, Observer } from 'rxjs'; import './observable.iterator'; export declare type ObservableGrpcCall any) & Client[Property]>, ClientStream = ReturnType<((...args: any) => any) & Client[Property]>, ServerStream = ReturnType<((...args: any) => any) & Client[Property]>, Duplex = ReturnType<((...args: any) => any) & Client[Property]>> = Duplex extends grpc.ClientDuplexStream ? (subjectStream: Subject, metadata?: Parameters<(() => void) & Client[Property]>[0], grpcOptions?: Parameters<(() => void) & Client[Property]>[1]) => Observable : ClientStream extends grpc.ClientWritableStream ? (subjectStream: Subject, metadata?: Parameters<(() => void) & Client[Property]>[0], grpcOptions?: Parameters<(() => void) & Client[Property]>[1]) => Observable : ServerStream extends grpc.ClientReadableStream ? (request: (Parameters<(() => void) & Client[Property]>[0]), metadata?: Parameters<(() => void) & Client[Property]>[1], grpcOptions?: Parameters<(() => void) & Client[Property]>[2]) => Observable : Unary extends grpc.ClientUnaryCall ? (request: (Parameters<(() => void) & Client[Property]>[0]), metadata?: Parameters<(() => void) & Client[Property]>[1], grpcOptions?: Parameters<(() => void) & Client[Property]>[2]) => Observable void) & Client[Property]>[3]>[1]> : Client[Property]; declare type ObservableGrpc = { [P in ClientMethodNames]: ObservableGrpcCall; }; /** * GrpcRequest */ export declare class GrpcRequest { protected readonly _client: Client & Record; protected readonly _metadata: Metadata; protected readonly _options?: grpc.CallOptions | undefined; protected constructor(_client: Client & Record, _metadata?: Metadata, _options?: grpc.CallOptions | undefined); static create(client: Client, metadata?: Metadata, options?: grpc.CallOptions): GrpcRequest & ObservableGrpc; get client(): Client & Record; withMetadata(metadata: Record): this; protected callReactiveGrpcMethod(methodName: string | number | symbol, ...args: any[]): Observable; /** * Unary call handler * @param observer */ protected unaryHandler(observer: Observer): (err: Error, response: T) => void; /** * get the appropriate grpc call arguments * @param args */ protected gRPCCallArguments(...args: any[]): any[]; } export {};