export type Method = "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | "CONNECT" | "TRACE"; export type Version = "HTTP/1.0" | "HTTP/1.1" | "HTTP/2.0" | "HTTP/3.0"; export type StatusCode = 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511; export type FormDataValue = { kind: "text"; value: string; } | { kind: "file"; filename: string; contentType: string; data: Uint8Array; }; export type FormData = Map; export declare enum MediaType { TEXT_PLAIN = "text/plain", TEXT_HTML = "text/html", TEXT_CSS = "text/css", TEXT_CSV = "text/csv", APPLICATION_JSON = "application/json", APPLICATION_LD_JSON = "application/ld+json", APPLICATION_XML = "application/xml", TEXT_XML = "text/xml", APPLICATION_FORM = "application/x-www-form-urlencoded", APPLICATION_OCTET = "application/octet-stream", MULTIPART_FORM = "multipart/form-data" } export type ContentType = { kind: "text"; content: string; mediaType: MediaType.TEXT_PLAIN | MediaType.TEXT_HTML | MediaType.TEXT_CSS | MediaType.TEXT_CSV; } | { kind: "json"; content: unknown; mediaType: MediaType.APPLICATION_JSON | MediaType.APPLICATION_LD_JSON; } | { kind: "xml"; content: string; mediaType: MediaType.APPLICATION_XML | MediaType.TEXT_XML; } | { kind: "form"; content: FormData; mediaType: MediaType.APPLICATION_FORM; } | { kind: "binary"; content: Uint8Array; mediaType: MediaType.APPLICATION_OCTET | string; filename?: string; } | { kind: "multipart"; content: FormData; mediaType: MediaType.MULTIPART_FORM; } | { kind: "urlencoded"; content: string; mediaType: MediaType.APPLICATION_FORM; } | { kind: "stream"; content: ReadableStream; mediaType: string; }; export interface ResponseBody { body: Uint8Array; mediaType: MediaType | string; } export type AuthType = { kind: "none"; } | { kind: "basic"; username: string; password: string; } | { kind: "bearer"; token: string; } | { kind: "digest"; username: string; password: string; realm?: string; nonce?: string; opaque?: string; algorithm?: "MD5" | "SHA-256" | "SHA-512"; qop?: "auth" | "auth-int"; nc?: string; cnonce?: string; } | { kind: "oauth2"; grantType: { kind: "authorization_code"; authEndpoint: string; tokenEndpoint: string; clientId: string; clientSecret?: string; } | { kind: "client_credentials"; tokenEndpoint: string; clientId: string; clientSecret?: string; } | { kind: "password"; tokenEndpoint: string; username: string; password: string; } | { kind: "implicit"; authEndpoint: string; clientId: string; }; accessToken?: string; refreshToken?: string; }; export type CertificateType = { kind: "pem"; cert: Uint8Array; key: Uint8Array; } | { kind: "pfx"; data: Uint8Array; password: string; }; export interface Request { id: number; url: string; method: Method; version: Version; headers?: Record; params?: Record; content?: ContentType; auth?: AuthType; security?: { certificates?: { client?: CertificateType; ca?: Array; }; validateCertificates?: boolean; verifyHost?: boolean; verifyPeer?: boolean; }; proxy?: { url: string; auth?: { username: string; password: string; }; }; } export interface Response { id: number; status: StatusCode; statusText: string; version: Version; headers: Record; cookies?: Array<{ name: string; value: string; domain?: string; path?: string; expires?: Date; secure?: boolean; httpOnly?: boolean; sameSite?: 'Strict' | 'Lax' | 'None'; }>; body: ResponseBody; meta: { timing: { start: number; end: number; }; size: { headers: number; body: number; total: number; }; }; } export type UnsupportedFeatureError = { kind: "unsupported_feature"; feature: string; message: string; relay: string; }; export type RelayError = UnsupportedFeatureError | { kind: "network"; message: string; cause?: unknown; } | { kind: "timeout"; message: string; phase?: "connect" | "tls" | "response"; } | { kind: "certificate"; message: string; cause?: unknown; } | { kind: "parse"; message: string; cause?: unknown; } | { kind: "abort"; message: string; }; export type RequestResult = { kind: 'success'; response: Response; } | { kind: 'error'; error: RelayError; }; export declare function execute(request: Request): Promise; export declare function cancel(requestId: number): Promise; //# sourceMappingURL=index.d.ts.map