import type { Dispatcher } from 'undici'; import type { SsrfBridge } from '../../ssrf'; import type { ProxyOption, SsrfOption } from '../node-agents'; export type CustomFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise; export type RequestAuthorizer = (url: URL) => Promise; export interface TransportTimeoutOptions { headersTimeout?: number; bodyTimeout?: number; connectTimeout?: number; } export interface CreateDispatcherTransportOptions { proxy?: ProxyOption; ssrf?: SsrfOption; timeouts?: TransportTimeoutOptions; authorize?: RequestAuthorizer; } export interface DispatcherTransport { asCustomFetch(): CustomFetch; getDispatcher(): Dispatcher; } export interface BuildDispatcherOptions { timeouts?: TransportTimeoutOptions; authorize?: RequestAuthorizer; } export declare function buildDispatcher(proxy: ProxyOption, ssrf: SsrfOption, options?: BuildDispatcherOptions): Dispatcher; export declare function createDispatcherTransport(options?: CreateDispatcherTransportOptions): DispatcherTransport; export declare function createSsrfInterceptor(bridge: SsrfBridge): Dispatcher.DispatcherComposeInterceptor; export declare function createAuthorizationInterceptor(authorize: RequestAuthorizer): Dispatcher.DispatcherComposeInterceptor; export declare function dispatchedFetch(dispatcher: Dispatcher, input: RequestInfo | URL, init?: RequestInit): Promise;