///
import { EventEmitter } from 'node:events';
import { LoaderChunk } from '../global/types.js';
import { BaseCache } from './base-cache.js';
export declare abstract class BaseLoader = Record, M extends Record = Record> extends EventEmitter {
private static cache?;
static setCache(cache?: BaseCache): void;
protected readonly uniqueId: string;
private readonly _canIncrementallyLoad;
constructor(uniqueId: string, canIncrementallyLoad?: boolean);
init(): Promise;
get canIncrementallyLoad(): boolean;
getUniqueId(): string;
private getCustomCacheKey;
protected checkInCache(key: string): Promise;
protected getFromCache(key: string): Promise>;
protected saveToCache(key: string, value: M): Promise;
protected deleteFromCache(key: string): Promise;
protected loadIncrementalChunk(incrementalGenerator: AsyncGenerator, void, void>): Promise;
abstract getChunks(): AsyncGenerator, void, void>;
}