export type NetworkRetryRequest = { url: string; method?: string; body?: string; headers?: Record; }; export type NetworkRetryClassification = { retryable: boolean; category: string; }; export type NetworkRetryPolicy = { matchesRequest: (request: Request | URL | string) => boolean; classifyFailure: (input: { error: unknown; request: NetworkRetryRequest; }) => Promise; handleResponse?: (input: { response: Response; request: NetworkRetryRequest; }) => Promise; normalizeFailure?: (input: { error: unknown; classification: NetworkRetryClassification; request: NetworkRetryRequest; }) => unknown; buildRepairPlan: (input: { request: NetworkRetryRequest; classification: NetworkRetryClassification; }) => Promise; }; export declare function createNetworkRetryEngine(input: { policy: NetworkRetryPolicy; }): (baseFetch: (request: Request | URL | string, init?: RequestInit) => Promise) => (request: Request | URL | string, init?: RequestInit) => Promise;