export type EgressErrorCode = | "INVALID_URL" | "SCHEME_DENIED" | "PORT_DENIED" | "DENIED_PRIVATE_ADDRESS" | "DNS_FAILED" | "BUDGET_EXHAUSTED" | "REDIRECT_LOOP" | "ORIGIN_DENIED" | "TIMEOUT" | "ABORTED" | "RESPONSE_TOO_LARGE" | "REQUEST_TOO_LARGE" | "NETWORK_ERROR" | "INVALID_PLAYLIST" | "INVALID_CONFIGURATION" | "INVALID_REQUEST" | "BUDGET_UNAVAILABLE"; /** Messages intentionally omit URLs, credentials and upstream error strings. */ export class EgressError extends Error { constructor(public readonly code: EgressErrorCode, message: string, public readonly retryAfterMs?: number) { super(message); this.name = "EgressError"; } }