///
import type { Span } from '@opentelemetry/api';
import type { EventEmitter } from 'events';
import type { CALL_SPAN_ENDED } from './serverUtils';
import type { requestCallback, ServerUnaryCall, ServerReadableStream, ServerWritableStream, ServerDuplexStream, Server, Metadata, makeGenericClientConstructor } from '@grpc/grpc-js';
export type metadataCaptureType = {
client: {
captureRequestMetadata: (span: Span, metadata: Metadata) => void;
captureResponseMetadata: (span: Span, metadata: Metadata) => void;
};
server: {
captureRequestMetadata: (span: Span, metadata: Metadata) => void;
captureResponseMetadata: (span: Span, metadata: Metadata) => void;
};
};
/**
* Server Unary callback type
*/
export type SendUnaryDataCallback = requestCallback;
/**
* Intersection type of all grpc server call types
*/
export type ServerCall = ServerUnaryCall | ServerReadableStream | ServerWritableStream | ServerDuplexStream;
/**
* {@link ServerCall} ServerCall extended with misc. missing utility types
*/
export type ServerCallWithMeta = ServerCall & {
metadata: Metadata;
};
/**
* EventEmitter with span ended symbol indicator
*/
export type GrpcEmitter = EventEmitter & {
[CALL_SPAN_ENDED]?: boolean;
};
/**
* Grpc client callback function extended with missing utility types
*/
export type GrpcClientFunc = ((...args: unknown[]) => GrpcEmitter) & {
path: string;
requestStream: boolean;
responseStream: boolean;
};
export type ServerRegisterFunction = typeof Server.prototype.register;
export type ClientRequestFunction = (...args: unknown[]) => ReturnType;
export type MakeClientConstructorFunction = typeof makeGenericClientConstructor;
export type { HandleCall } from '@grpc/grpc-js/build/src/server-call';
export type { PackageDefinition } from '@grpc/grpc-js/build/src/make-client';
//# sourceMappingURL=internal-types.d.ts.map