///
import type { fetch } from "@libsql/isomorphic-fetch";
import type { SqlOwner, ProtoSql } from "../sql.js";
import { Sql } from "../sql.js";
import { Stream } from "../stream.js";
import type { HttpClient } from "./client.js";
import { HttpCursor } from "./cursor.js";
import type * as proto from "./proto.js";
export declare class HttpStream extends Stream implements SqlOwner {
#private;
/** @private */
constructor(client: HttpClient, baseUrl: URL, jwt: string | undefined, customFetch: typeof fetch);
/** Get the {@link HttpClient} object that this stream belongs to. */
client(): HttpClient;
/** @private */
_sqlOwner(): SqlOwner;
/** Cache a SQL text on the server. */
storeSql(sql: string): Sql;
/** @private */
_closeSql(sqlId: number): void;
/** @private */
_execute(stmt: proto.Stmt): Promise;
/** @private */
_batch(batch: proto.Batch): Promise;
/** @private */
_describe(protoSql: ProtoSql): Promise;
/** @private */
_sequence(protoSql: ProtoSql): Promise;
/** Check whether the SQL connection underlying this stream is in autocommit state (i.e., outside of an
* explicit transaction). This requires protocol version 3 or higher.
*/
getAutocommit(): Promise;
/** @private */
_openCursor(batch: proto.Batch): Promise;
/** @private */
_cursorClosed(cursor: HttpCursor): void;
/** Immediately close the stream. */
close(): void;
/** Gracefully close the stream. */
closeGracefully(): void;
/** True if the stream is closed. */
get closed(): boolean;
/** @private */
_setClosed(error: Error): void;
}