import type { HandleMessageStreamEvent } from "#protocol/message.js";
import type { ClientRedirectPolicy } from "#client/types.js";
/**
 * Internal configuration for opening a durable event stream.
 */
interface OpenStreamInput {
    readonly host: string;
    readonly maxReconnectAttempts: number;
    readonly resolveHeaders: () => Promise<Headers>;
    readonly redirect?: ClientRedirectPolicy;
    readonly sessionId: string;
    readonly signal?: AbortSignal;
    readonly startIndex: number;
}
type OpenStreamBodyInput = Omit<OpenStreamInput, "maxReconnectAttempts">;
/**
 * Opens a durable NDJSON event stream with automatic reconnection on socket
 * disconnection. Used by {@link ClientSession.stream}.
 */
export declare function openStreamIterable(input: OpenStreamInput): AsyncGenerator<HandleMessageStreamEvent>;
/**
 * Opens one stream response body, retrying the short propagation window where
 * a just-acknowledged session may not yet be readable from the stream route.
 */
export declare function openStreamBody(input: OpenStreamBodyInput): Promise<ReadableStream<Uint8Array>>;
export {};
