import { Future, Option, Result } from "@swan-io/boxed"; type ResponseType = "text" | "arraybuffer" | "blob" | "json"; type ResponseTypeMap = { text: string; arraybuffer: ArrayBuffer; blob: Blob; json: unknown; }; type Method = "GET" | "POST" | "OPTIONS" | "PATCH" | "PUT" | "DELETE"; export declare class NetworkError extends Error { url: string; constructor(url: string); } export declare class TimeoutError extends Error { url: string; timeout: number | undefined; constructor(url: string, timeout?: number); } export declare class CanceledError extends Error { constructor(); } type Config = { url: string; method?: Method; type: T; body?: BodyInit | null; headers?: Record; credentials?: RequestCredentials; timeout?: number; cache?: RequestCache; integrity?: string; keepalive?: boolean; mode?: RequestMode; priority?: RequestPriority; redirect?: RequestRedirect; referrer?: string; referrerPolicy?: ReferrerPolicy; window?: null; }; export type Response = { status: number; ok: boolean; response: Option; url: string; headers: Headers; }; export declare class BadStatusError extends Error { url: string; status: number; response: unknown; constructor(url: string, status: number, response?: unknown); } export declare const badStatusToError: (response: Response) => Result, BadStatusError>; export declare class EmptyResponseError extends Error { url: string; constructor(url: string); } export declare const emptyToError: (response: Response) => Result; export declare const Request: { make: ({ url, method, type, body, headers, credentials, timeout, cache, integrity, keepalive, mode, priority, redirect, referrer, referrerPolicy, window, }: Config) => Future, NetworkError | TimeoutError>>; }; export {};