import { PANERELAY_PROTOCOL_VERSION } from './constants.js'; export declare const PANERELAY_FETCH_SESSION_PROTOCOL: "panerelay.fetch-session.v3"; export declare const PANERELAY_FETCH_PERMISSION_PROTOCOL: "panerelay.fetch-permission.v1"; export declare const PANERELAY_FETCH_ADAPTER_PROTOCOL: "panerelay.fetch-adapter.v3"; export declare const PANERELAY_FETCH_ADAPTER_REGISTRY_PROTOCOL: "panerelay.fetch-adapter-registry.v3"; export declare const PANERELAY_FETCH_MAX_URL_BYTES: number; export declare const PANERELAY_FETCH_MAX_HEADERS = 128; export declare const PANERELAY_FETCH_MAX_HEADER_BYTES: number; export declare const PANERELAY_FETCH_MAX_ORIGINS = 32; export declare const PANERELAY_FETCH_MAX_BINDINGS = 16; export declare const PANERELAY_FETCH_MAX_BODY_BYTES: number; export declare const PANERELAY_FETCH_MAX_RESPONSE_BODY_BYTES: number; export declare const PANERELAY_FETCH_MAX_HTTP_REQUEST_BYTES: number; export declare const PANERELAY_FETCH_MAX_SESSION_REQUEST_BYTES: number; export declare const PANERELAY_FETCH_MIN_TIMEOUT_MS = 100; export declare const PANERELAY_FETCH_MAX_TIMEOUT_MS = 120000; export declare const PANERELAY_FETCH_DEFAULT_TIMEOUT_MS = 30000; export declare const PANERELAY_FETCH_SESSION_TTL_MS = 120000; export declare const PANERELAY_FETCH_PERMISSION_TIMEOUT_MS = 90000; export declare const PANERELAY_FETCH_MAX_SESSIONS = 16; export declare const PANERELAY_FETCH_ADAPTER_MAX_ARTIFACT_BYTES: number; export declare const PANERELAY_FETCH_ADAPTER_MAX_OUTPUT_BYTES: number; export declare const PANERELAY_FETCH_ADAPTER_MAX_STDERR_BYTES: number; export declare const PANERELAY_FETCH_ADAPTER_MAX_SOURCE_PATH_BYTES: number; export declare const PANERELAY_FETCH_ADAPTER_MAX_SOURCE_REF_BYTES = 256; export declare const PANERELAY_FETCH_ADAPTER_MAX_FILE_BYTES: number; export declare const PANERELAY_FETCH_ADAPTER_MAX_INPUT_BYTES: number; export declare const PANERELAY_FETCH_METHODS: readonly ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"]; export type BrowserFetchMethod = (typeof PANERELAY_FETCH_METHODS)[number]; export type BrowserFetchResponseType = 'auto' | 'json' | 'text' | 'base64'; export interface BrowserFetchBody { encoding: 'utf8' | 'base64'; data: string; } export interface BrowserFetchQueryEntry { name: string; value: string; } export type BrowserFetchBindingDestinationKind = 'form' | 'json' | 'header'; export interface BrowserFetchBindingDestination { kind: BrowserFetchBindingDestinationKind; name: string; prefix?: string; suffix?: string; } export type BrowserFetchBindingSource = { kind: 'cookie'; name: string; transform?: 'raw' | 'url-decode'; } | { kind: 'local-storage'; origin: string; key: string; jsonPointers?: string[]; trim?: boolean; }; export interface BrowserFetchBindingPolicy { id: string; source: BrowserFetchBindingSource; destination: BrowserFetchBindingDestination; requestOrigins: string[]; required?: boolean; } export interface BrowserFetchRequest { url: string; method?: BrowserFetchMethod; headers?: Record; query?: BrowserFetchQueryEntry[]; body?: BrowserFetchBody; withCookies?: boolean; bindings?: string[]; responseType?: BrowserFetchResponseType; timeoutMs?: number; } export interface BrowserFetchResponse { status: number; statusText: string; headers: Record; body: unknown; bodyType: 'json' | 'text' | 'base64'; url: string; redirected: boolean; attachedCookieCount: number; } export interface BrowserFetchRequestMessage { type: 'fetch.request'; protocol: typeof PANERELAY_PROTOCOL_VERSION; requestId: string; browserId: string; generation: string; allowedOrigins: string[]; bindingPolicies: BrowserFetchBindingPolicy[]; request: BrowserFetchRequest; } export interface BrowserFetchCancelMessage { type: 'fetch.cancel'; protocol: typeof PANERELAY_PROTOCOL_VERSION; requestId: string; browserId: string; generation: string; } export interface BrowserFetchResultMessage { type: 'fetch.result'; protocol: typeof PANERELAY_PROTOCOL_VERSION; requestId: string; success: boolean; response?: BrowserFetchResponse; error?: string; } export type BrowserFetchPermissionScope = 'domain'; export interface BrowserFetchPermissionRequestMessage { type: 'fetch.permission.request'; protocol: typeof PANERELAY_PROTOCOL_VERSION; requestId: string; browserId: string; generation: string; domain: string; } export interface BrowserFetchPermissionCancelMessage { type: 'fetch.permission.cancel'; protocol: typeof PANERELAY_PROTOCOL_VERSION; requestId: string; browserId: string; generation: string; } export interface BrowserFetchPermissionResultMessage { type: 'fetch.permission.result'; protocol: typeof PANERELAY_PROTOCOL_VERSION; requestId: string; granted: boolean; domain: string; scope?: BrowserFetchPermissionScope; error?: string; } export interface BrowserFetchSessionCreateRequest { protocol: typeof PANERELAY_FETCH_SESSION_PROTOCOL; browser: { browserId: string; generation: string; }; allowedOrigins: string[]; bindingPolicies?: BrowserFetchBindingPolicy[]; } export interface BrowserFetchSessionCreated { protocol: typeof PANERELAY_FETCH_SESSION_PROTOCOL; sessionId: string; endpoint: string; token: string; expiresAt: string; } export interface BrowserFetchSessionError { protocol: typeof PANERELAY_FETCH_SESSION_PROTOCOL; error: string; } export interface BrowserFetchPermissionRequest { protocol: typeof PANERELAY_FETCH_PERMISSION_PROTOCOL; browser: { browserId: string; generation: string; }; domain: string; } export interface BrowserFetchPermissionResult { protocol: typeof PANERELAY_FETCH_PERMISSION_PROTOCOL; granted: boolean; domain: string; scope?: BrowserFetchPermissionScope; } export interface BrowserFetchPermissionError { protocol: typeof PANERELAY_FETCH_PERMISSION_PROTOCOL; error: string; } export type FetchAdapterArgumentType = 'string' | 'number' | 'boolean' | 'file'; export interface FetchAdapterArgument { name: string; description: string; type: FetchAdapterArgumentType; required?: boolean; positional?: boolean; default?: string | number | boolean; } export interface FetchAdapterCommand { name: string; description: string; access: 'read' | 'write'; args: FetchAdapterArgument[]; output: string[]; examples: string[]; } export interface FetchAdapterManifest { protocol: typeof PANERELAY_FETCH_ADAPTER_PROTOCOL; id: string; name: string; version: string; description: string; origins: string[]; bindings?: BrowserFetchBindingPolicy[]; entry: string; commands: FetchAdapterCommand[]; } export type FetchAdapterSourceProvenance = { kind: 'builtin'; id: string; version: string; } | { kind: 'local'; path: string; } | { kind: 'github'; repository: string; commit: string; ref?: string; subdirectory?: string; }; export interface FetchAdapterRegistration { manifest: FetchAdapterManifest; executablePath: string; sha256: string; source?: FetchAdapterSourceProvenance; } export interface FetchAdapterRegistry { protocol: typeof PANERELAY_FETCH_ADAPTER_REGISTRY_PROTOCOL; adapters: FetchAdapterRegistration[]; } export interface FetchAdapterInvocationRequest { protocol: typeof PANERELAY_FETCH_ADAPTER_PROTOCOL; requestId: string; operation: 'execute'; command: string; args: Record; artifacts?: FetchAdapterInvocationArtifact[]; fetch: { endpoint: string; token: string; expiresAt: string; }; } export interface FetchAdapterInvocationArtifact { id: string; basename: string; mediaType: string; size: number; data: string; } export declare const SITE_ERROR_CODES: readonly ["invalid-input", "auth-required", "missing-credential", "challenge-required", "upstream-failure", "shape-drift", "empty-result", "unsupported", "command-failed"]; export type SiteErrorCode = (typeof SITE_ERROR_CODES)[number]; export interface FetchAdapterInvocationError { code: SiteErrorCode; message: string; retryable?: boolean; } export interface FetchAdapterInvocationResponse { protocol: typeof PANERELAY_FETCH_ADAPTER_PROTOCOL; requestId: string; operation: 'execute'; success: boolean; result?: unknown; error?: FetchAdapterInvocationError; } export declare function normalizeBrowserFetchOriginPattern(value: unknown): string | null; export declare function browserFetchOriginForUrl(value: string): string | null; export declare function doesBrowserFetchOriginMatch(pattern: string, value: string): boolean; export declare function isBrowserFetchBindingPolicy(value: unknown): value is BrowserFetchBindingPolicy; export declare function areBrowserFetchBindingPoliciesCompatible(request: BrowserFetchRequest, policies: readonly BrowserFetchBindingPolicy[]): boolean; export declare function isBrowserFetchRequest(value: unknown): value is BrowserFetchRequest; export declare function isBrowserFetchResponse(value: unknown): value is BrowserFetchResponse; export declare function isBrowserFetchRequestMessage(value: unknown): value is BrowserFetchRequestMessage; export declare function isBrowserFetchCancelMessage(value: unknown): value is BrowserFetchCancelMessage; export declare function isBrowserFetchPermissionCancelMessage(value: unknown): value is BrowserFetchPermissionCancelMessage; export declare function isBrowserFetchResultMessage(value: unknown): value is BrowserFetchResultMessage; export declare function normalizeBrowserFetchDomain(value: unknown): string | null; export declare function isBrowserFetchPermissionRequestMessage(value: unknown): value is BrowserFetchPermissionRequestMessage; export declare function isBrowserFetchPermissionResultMessage(value: unknown): value is BrowserFetchPermissionResultMessage; export declare function isBrowserFetchSessionCreateRequest(value: unknown): value is BrowserFetchSessionCreateRequest; export declare function isBrowserFetchPermissionRequest(value: unknown): value is BrowserFetchPermissionRequest; export declare function isBrowserFetchPermissionResult(value: unknown): value is BrowserFetchPermissionResult; export declare function isBrowserFetchPermissionError(value: unknown): value is BrowserFetchPermissionError; export declare function isBrowserFetchSessionCreated(value: unknown): value is BrowserFetchSessionCreated; export declare function isBrowserFetchSessionError(value: unknown): value is BrowserFetchSessionError; export declare function isFetchAdapterManifest(value: unknown): value is FetchAdapterManifest; export declare function isFetchAdapterSourceProvenance(value: unknown): value is FetchAdapterSourceProvenance; export declare function isFetchAdapterRegistration(value: unknown): value is FetchAdapterRegistration; export declare function isFetchAdapterRegistry(value: unknown): value is FetchAdapterRegistry; export declare function isFetchAdapterInvocationError(value: unknown): value is FetchAdapterInvocationError; export declare function isFetchAdapterInvocationRequest(value: unknown): value is FetchAdapterInvocationRequest; export declare function isFetchAdapterInvocationResponse(value: unknown): value is FetchAdapterInvocationResponse; export declare function serializeFetchAdapterMessage(value: unknown): string; //# sourceMappingURL=browser-fetch.d.ts.map