import type { VeryfrontApiClient } from "../../veryfront-api-client/index.js"; import { FileCache } from "../cache/file-cache.js"; import { PathNormalizer } from "./path-normalizer.js"; import type { ContentContextProvider } from "./file-list-access.js"; export { endRequestMetrics, getContentMetricsSnapshot, resetContentMetrics, startRequestMetrics, } from "./content-metrics.js"; export declare class ReadOperations { private readonly client; private readonly cache; private readonly normalizer; private readonly contextProvider?; private readonly getOriginalApiPath?; private readonly getFileListCache?; private readonly inFlightRequests; private readonly fileListIndex; /** Caches extensionless base paths → resolved full paths to avoid repeated API resolution calls */ private readonly extensionResolutionCache; constructor(client: VeryfrontApiClient, cache: FileCache, normalizer: PathNormalizer, contextProvider?: ContentContextProvider | undefined, getOriginalApiPath?: ((path: string) => string) | undefined, getFileListCache?: (() => Promise | undefined>) | undefined); setFileListReadyPromise(promise: Promise): void; clearFileListIndex(): void; readFile(path: string): Promise; readFileBytesWithinLimit(path: string, byteLimit: number): Promise; private readExactApiPath; readTextFile(path: string): Promise; readOptionalTextFile(path: string): Promise; private getRequestScopedHit; private getProductionPersistentCacheHit; private getFileListCacheHit; private setupInFlightFetch; private tryResolveExtensionlessPath; private tryResolveExtensionlessPathFromFileList; private finalizeResolvedExtension; private cacheResolvedContent; private storeFetchedContent; private fetchPublishedVariant; private fetchContent; private fetchPublishedContent; private tryFallbackExtensions; private tryFallbackExtensionsSequential; private fetchDraftContent; } //# sourceMappingURL=read-operations.d.ts.map