import { Logger } from 'pino'; import { Metadata, CallOptions, ChannelCredentials, Client } from 'grpc'; import RetryOptions from '../entities/RetryOptions'; export declare type MetadataGenerator = (serviceUrl: string) => Promise; export declare type Config = { logger: Logger; endpoint: string; credentials: ChannelCredentials; generateMetadata: MetadataGenerator; retryOptions?: RetryOptions; }; declare type CallOptionsConfig = { deadline?: number; authRequired?: boolean; }; declare abstract class Service { protected readonly service: T; private readonly credentials; private readonly noopCredentials; private readonly retryOptions; protected constructor(ServiceImpl: T, config: Config); protected getCallOptions({ deadline, authRequired, }?: CallOptionsConfig): CallOptions; close(): void; } export default Service;