import { Common, Manifest, SDK } from '@rsdoctor/types'; import { Data } from '@rsdoctor/utils/common'; export declare abstract class BaseDataLoader implements Manifest.ManifestDataLoader { protected manifest: Manifest.RsdoctorManifestWithShardingFiles; protected pool: Map>; protected loader: Data.APIDataLoader; protected disposed: boolean; protected shardingDataMap: Map>; constructor(manifest: Manifest.RsdoctorManifestWithShardingFiles); protected get(key: T): void | Manifest.RsdoctorManifestWithShardingFiles[T]; protected getData(key: T, scope?: 'data' | 'cloudData'): void | Manifest.RsdoctorManifestWithShardingFiles['data'][T]; protected getKeys(key: string): string[]; protected joinKeys(keys: string[]): string; dispose(): void; limit(key: string, fn: Common.Function>): Promise; log(...args: unknown[]): void; loadManifest(): Promise; abstract loadData(key: T): Promise; abstract loadData(key: T): Promise>; abstract isLocal(): boolean; abstract loadAPI = SDK.ServerAPI.InferRequestBodyType, R extends SDK.ServerAPI.InferResponseType = SDK.ServerAPI.InferResponseType>(...args: B extends void ? [api: T] : [api: T, body: B]): Promise; abstract onDataUpdate(api: T, fn: (response: SDK.ServerAPI.SocketResponseType) => void): void; abstract removeOnDataUpdate(api: T, fn: (response: SDK.ServerAPI.SocketResponseType) => void): void; }