import type { S2RequestOptions } from "../../../../common.js"; import { type Client } from "../../../../generated/client/index.js"; import type * as API from "../../../../generated/index.js"; import type * as Types from "../../../../types.js"; import type { AppendResult, CloseResult } from "../../../result.js"; import type { AppendSession, AppendSessionOptions, ReadArgs, ReadResult, ReadSession, SessionTransport, TransportAppendSession, TransportConfig, TransportReadSession } from "../../types.js"; export declare class FetchReadSession extends ReadableStream> implements TransportReadSession { static create(client: Client, name: string, args?: ReadArgs, options?: S2RequestOptions): Promise>; /** @internal */ static _createForTesting(stream: ReadableStream, format: Format): FetchReadSession; private _nextReadPosition; private _lastObservedTail; private constructor(); nextReadPosition(): API.StreamPosition | undefined; lastObservedTail(): API.StreamPosition | undefined; [Symbol.asyncIterator](): AsyncIterableIterator>; [Symbol.asyncDispose](): Promise; } /** * Fetch-based transport session for appending records via HTTP/1.1. * Queues append requests and ensures only one is in-flight at a time (single-flight). * No backpressure, no retry logic, no streams - just submit/close with value-encoded errors. */ export declare class FetchAppendSession implements TransportAppendSession { private queue; private pendingResolvers; private inFlight; private _effectSignalled; private readonly options?; private readonly stream; private closed; private processingPromise; private readonly client; static create(stream: string, transportConfig: TransportConfig, sessionOptions?: AppendSessionOptions, requestOptions?: S2RequestOptions): Promise; private constructor(); /** * Returns true if data may have been sent to the server since the * last time the session was dormant (queue fully drained with no errors). * Only resets after the processing loop completes successfully. */ effectSignalled(): boolean; /** * Close the append session. * Waits for all pending appends to complete before resolving. * Never throws - returns CloseResult. */ close(): Promise; /** * Submit an append request to the session. * The request will be queued and sent when no other request is in-flight. * Never throws - returns AppendResult discriminated union. */ submit(input: Types.AppendInput): Promise; /** * Main processing loop that sends queued requests one at a time. * Single-flight: only one request in progress at a time. */ private processLoop; private waitForDrain; } /** * Fetch-based transport using HTTP/1.1 + JSON * Works in all JavaScript environments (browser, Node.js, Deno, etc.) */ export declare class FetchTransport implements SessionTransport { private readonly client; private readonly transportConfig; constructor(config: TransportConfig); makeAppendSession(stream: string, sessionOptions?: AppendSessionOptions, requestOptions?: S2RequestOptions): Promise; makeReadSession(stream: string, args?: ReadArgs, options?: S2RequestOptions): Promise>; close(): Promise; } //# sourceMappingURL=index.d.ts.map