import type { Event } from "@aexhq/brain/session"; import type { JsonRequestOptions, TransferTicket } from "@aexhq/brain"; export type Fetch = (input: RequestInfo | URL, init?: RequestInit) => Promise; export interface EventOptions { after?: number; follow?: boolean; signal?: AbortSignal | undefined; } export declare class Transport { #private; readonly baseUrl: string; constructor(apiKey: string, baseUrl: string, fetchImplementation: Fetch); customerHandGrant(clientId: string, signal?: AbortSignal): Promise<{ url: string; protocol: string; expiresAt: string; observationUrl: string; observationToken: string; }>; customerHandObserve(url: string, token: string, observation: unknown): Promise; downloadTransfer(ticket: TransferTicket, signal?: AbortSignal, expectedBytes?: number): Promise; downloadTransferStream(ticket: TransferTicket, signal?: AbortSignal, expectedBytes?: number): Promise>; uploadTransfer(ticket: TransferTicket, content: Uint8Array | (() => ReadableStream), bytes: number, signal?: AbortSignal): Promise; json(method: "GET" | "POST" | "DELETE", path: string, options?: JsonRequestOptions): Promise; /** Accept one durable deletion job; strict callers poll its short status resource client-side. */ deleteSession(sessionId: string, waitForCompletion: boolean, signal?: AbortSignal): Promise; events(sessionId: string, options?: EventOptions): AsyncGenerator; private responseError; } /** @internal Incremental, constant-space decoder for Brain's bounded public SSE events. */ export declare function parseEventStream(stream: ReadableStream): AsyncGenerator;