import type { BulkFileDownloadBudgetApi, BulkFileDownloadBudgetSnapshot } from '../Api/BulkFileDataCacheApi'; export interface DurableFileBulkFileDownloadBudgetOptions { maxBytes: number; stateFile: string; windowMsecs?: number; now?: () => number; /** Maximum wait for the cross-process state lock. Default: 30 seconds. */ lockTimeoutMsecs?: number; /** Delay between cross-process lock attempts. Default: 25 milliseconds. */ lockRetryMsecs?: number; } /** * Crash-safe fixed-window reservation ledger for remote bulk-header bytes. * * State is flushed before `consume` resolves, so a crash may conservatively * over-count an attempt but can never reset the allowance or permit an * unrecorded request. Deployments must place `stateFile` on durable storage. * * @public */ export declare class DurableFileBulkFileDownloadBudget implements BulkFileDownloadBudgetApi { private readonly maxBytes; private readonly windowMsecs; private readonly stateFile; private readonly lockFolder; private readonly lockTimeoutMsecs; private readonly lockRetryMsecs; private readonly now; private tail; private snapshotState; constructor(options: DurableFileBulkFileDownloadBudgetOptions); /** * Load and validate the durable ledger before the service becomes ready. * * `consume` also initializes lazily, but services should await this method so * readiness reports the persisted allowance and corrupt state fails startup. */ initialize(): Promise; consume(byteCount: number): Promise; snapshot(): BulkFileDownloadBudgetSnapshot; private consumeSerialized; private newState; private readState; private writeState; private validNow; private withStateLock; } //# sourceMappingURL=DurableFileBulkFileDownloadBudget.d.ts.map