class KeyedBudgetManager {

	public long acquireBudgetForKey(K key, long size) {
		Preconditions.checkNotNull(key);
		AcquisitionResult<K> result = acquirePagedBudgetForKeys(Collections.singletonList(key), size, 1L);
		return result.isSuccess() ?
			result.getAcquiredPerKey().get(key) : result.getTotalAvailableForAllQueriedKeys();
	}

	public  KeyedBudgetManager(Map<K, Long> maxBudgetByKey, long defaultPageSize);

}