import type { ProviderRuntimeService } from "./provider-runtime-service.js"; import type { Duplex } from "node:stream"; import http, { type IncomingMessage } from "node:http"; import { type WebSocket } from "ws"; import { type RemoteAccessController, type ValidatedAccess } from "./remote-access-auth.js"; export { releasePtyMaster, spawnReconciledPty } from "@termfleet/terminal/tmux-stream.js"; type TerminalWebSocketContext = { allowedOrigins: () => Set; remoteAccess: RemoteAccessController; pathname?: string; runtime: ProviderRuntimeService; }; type WebSocketUpgradeRoute = { matches(pathname: string): boolean; handle(request: IncomingMessage, socket: Duplex, head: Buffer): void; }; export declare function attachTerminalWebSocket(server: http.Server, context: { allowedOrigins: () => Set; remoteAccess: RemoteAccessController; runtime: ProviderRuntimeService; }): void; export declare function createTerminalWebSocketUpgradeRoute(context: TerminalWebSocketContext & { pathname?: string; }): WebSocketUpgradeRoute; export declare function createTerminalWebSocketUpgradeHandler(context: TerminalWebSocketContext): (request: IncomingMessage, socket: Duplex, head: Buffer) => boolean; export declare function attachNativeCapturePollSocket(socket: WebSocket, context: { remoteAccess?: RemoteAccessController; runtime: Pick; }, terminalId: string, terminalSize: { columns: number; rows: number; }, access?: ValidatedAccess, token?: string): void;