/**
* Process-wide controls for outbound HTML and image requests.
*
* The secure HTTP agents bound sockets per origin. This limiter adds a global
* ceiling so callers cannot bypass the bound by spreading requests over many
* different origins. The deadline is intentionally separate from Axios'
* socket-inactivity timeout and covers queue wait plus the complete response.
*/
export declare class NetworkRequestDeadlineError extends Error {
readonly timeoutMs: number;
constructor(timeoutMs: number);
}
export declare class NetworkRequestAbortedError extends Error {
constructor(message?: string);
}
export declare class NetworkRequestQueueFullError extends Error {
constructor();
}
/**
* Run one outbound request under a total wall-clock deadline and the shared
* process-wide concurrency limit.
*/
export declare function runControlledNetworkRequest(timeoutMs: number, callerSignal: AbortSignal | undefined, request: (signal: AbortSignal) => Promise): Promise;
declare function resetLimiterForTests(): void;
/** Test-only limiter visibility; omitted at runtime outside NODE_ENV=test. */
export declare const __testNetworkRequestLimiter: {
getStats: () => {
active: number;
queued: number;
activeLimit: number;
queuedLimit: number;
};
reset: typeof resetLimiterForTests;
} | undefined;
export {};