import { DataSource, DataSourceConfig } from 'apollo-datasource';
import GRPCCache from './GRPCCache';
import { ServiceClient } from "@grpc/grpc-js/build/src/make-client";
import { CallOptionsI } from "./types/call.interface";
declare abstract class GRPCDataSource<TContext = any> extends DataSource {
    cache: GRPCCache;
    context: TContext;
    client: ServiceClient;
    constructor();
    initialize(config: DataSourceConfig<any>): void;
    callRPC(ttl: number | undefined, callOptions: CallOptionsI, fnTransformResponseData?: any): Promise<any>;
    getCacheKey(args: any, rpcName: string): string;
}
export default GRPCDataSource;
