import MemoryBudget from './MemoryBudget.ts';
import MemoryBudgetLease from './MemoryBudgetLease.ts';
import WarpMemoryPoolSnapshot from './WarpMemoryPoolSnapshot.ts';
export type WarpMemoryPoolFields = {
    readonly name: string;
    readonly budget: MemoryBudget;
};
export type MemoryLeaseRequest = {
    readonly scope: string;
    readonly amount: number;
};
/** Runtime pool for deterministic git-warp-owned memory-budget leases. */
export default class WarpMemoryPool {
    readonly name: string;
    readonly budget: MemoryBudget;
    private _leased;
    private _peak;
    private _rejected;
    private _nextLease;
    private readonly _releasedLeases;
    constructor(fields: WarpMemoryPoolFields);
    acquire(request: MemoryLeaseRequest): MemoryBudgetLease;
    snapshot(): WarpMemoryPoolSnapshot;
    private assertAvailable;
    private release;
    private nextLeaseId;
}
