import { type EditableArtifactApplicationPort, type EditableArtifactLiveClose, type EditableArtifactLiveServerFrame, type EditableArtifactLiveSinkPort } from "@opengeni/core"; import type { ApiWebSocketConnection, ApiWebSocketLike, ApiWebSocketUpgradeServer } from "./api-websocket.js"; export declare const EDITABLE_ARTIFACT_LIVE_WEBSOCKET_PATH = "/v1/editable-artifacts/live"; export declare const EDITABLE_ARTIFACT_LIVE_WEBSOCKET_PROTOCOL = "opengeni-artifact-v2"; export declare const EDITABLE_ARTIFACT_LIVE_WEBSOCKET_MAX_MESSAGE_BYTES: number; export type EditableArtifactWebSocketLike = ApiWebSocketLike; export type EditableArtifactWebSocketUpgradeServer = ApiWebSocketUpgradeServer; export type EditableArtifactWebSocketHandler = Readonly<{ open(socket: EditableArtifactWebSocketLike): void; message(socket: EditableArtifactWebSocketLike, message: string | Uint8Array | ArrayBuffer): void; close(socket: EditableArtifactWebSocketLike): void; }>; export declare class EditableArtifactWebSocketTransport { private readonly application; readonly websocket: EditableArtifactWebSocketHandler; constructor(application: EditableArtifactApplicationPort | undefined); handles(request: Request): boolean; upgrade(request: Request, server: EditableArtifactWebSocketUpgradeServer): Response | undefined; } /** One socket, one consumed ticket, one stream epoch. */ export declare class EditableArtifactWebSocketConnection implements EditableArtifactLiveSinkPort, ApiWebSocketConnection { private readonly application; private socket; private session; private work; private queuedMessages; private queuedBytes; private terminal; constructor(application: EditableArtifactApplicationPort); attach(socket: EditableArtifactWebSocketLike): void; receive(message: string | Uint8Array | ArrayBuffer): void; send(frame: EditableArtifactLiveServerFrame): Promise; bufferedBytes(): number; close(close: EditableArtifactLiveClose): void; transportClosed(): void; private process; private handleFailure; private fail; }