import { ImportSpecifier } from '@umijs/bundler-utils/compiled/es-module-lexer'; import type { FileChangeEvent, FileContentCache } from './types'; export type MergedCodeInfo = { code: string; imports: readonly ImportSpecifier[]; }; export type Listener = (info: MergedCodeInfo) => void; export declare class LazySourceCodeCache { private readonly srcPath; private readonly cachePath; private folderWatch; private listeners; private ignores; fileContentCache: FileContentCache; private pendingFilesEvents; private root; private tsConfigRaw; constructor(opts: { cwd: string; cachePath: string; root: string; }); init(files: string[]): Promise; initWithScan(): Promise; private initFileList; getSrcPath(): string; loadFiles(files: string[]): Promise; getMergedCode(): { code: string; imports: readonly ImportSpecifier[]; }; replayChangeEvents(): FileChangeEvent[]; handleFileChangeEvents(events: FileChangeEvent[]): Promise; notify(): void; register(l: Listener): () => void; filesLoader(files: string[]): Promise>; unwatch(): void; }