import DataLoader, { BatchLoadFn } from 'dataloader'; import type { Container } from './container'; import type { Got } from 'got'; export declare abstract class Service { protected cnt: C; constructor(cnt: C); } export declare abstract class GotService extends Service { protected abstract got: Got; } export declare abstract class GraphQLService extends GotService { } export declare abstract class DataLoaderService { abstract batchLoadFn: BatchLoadFn; private _loader; protected get loader(): DataLoader; } export declare type DerivedServiceClass> = Pick, keyof typeof Service> & (new (...args: ConstructorParameters>) => S);