import type { UrlString } from './types.js'; export interface NextWaiter { resolve: (release: (() => void) | null) => void; wake: () => void; } export interface UrlState { count: number; nextWaiter: NextWaiter | null; abortController: AbortController; } export interface RangeSlotManagerOptions { maxConcurrentRangesPerUrl: number; prioritizeLatestRequest: boolean; maxTrackedUrls: number; } export interface RangeSlotManager { acquireRangeSlot: (url: UrlString) => Promise<(() => void) | null>; getOrCreateUrlState: (url: UrlString) => UrlState; } export declare function mergeAbortSignals(...signals: AbortSignal[]): AbortSignal; export declare function createRangeSlotManager(options: RangeSlotManagerOptions): RangeSlotManager;