/** * Compose multiple AbortSignals into one. Aborts when any source aborts. * * Manual implementation — `AbortSignal.any` keeps strong references to the * source signals on each composed signal (Node #57736), which leaks listeners * when the source signals outlive individual requests (e.g. one app-wide * AbortSignal shared across thousands of fetches). We attach `{ once: true }` * listeners and detach them after the first source aborts or when the * returned signal's controller is GC'd alongside the request. */ export declare function composeSignals(signals: (AbortSignal | undefined)[]): AbortSignal | undefined; /** * Build a timeout signal using native `AbortSignal.timeout`. Reason is a * `TimeoutError`-style DOMException — used by `isOurTimeoutAbort` to tell * "our timer fired" from "user aborted". */ export declare function timeoutSignal(ms: number): AbortSignal; /** * True when the signal aborted because *we* set a timeout (not the user). */ export declare function isOurTimeoutAbort(signal: AbortSignal | undefined): boolean;