/** `StreamKind.STREAM_KIND_DESKTOP` (agent-proto enum value). */ export declare const STREAM_KIND_DESKTOP = 2; /** `StreamKind.STREAM_KIND_PTY` (agent-proto enum value). */ export declare const STREAM_KIND_PTY = 1; /** `StreamKind.STREAM_KIND_BROWSER` (agent-proto enum value). */ export declare const STREAM_KIND_BROWSER = 3; /** `StreamKind.STREAM_KIND_COMPUTER` (agent-proto enum value). */ export declare const STREAM_KIND_COMPUTER = 4; /** `StreamRole.STREAM_ROLE_CLIENT` (agent-proto enum value). */ export declare const STREAM_ROLE_CLIENT = 2; /** `StreamCloseReason.STREAM_CLOSE_REASON_NORMAL`. */ export declare const STREAM_CLOSE_REASON_NORMAL = 1; export interface RelayChannel { channelId: string; workspaceId: string; agentId: string; kind: number; port: number; } export interface RelayStreamOpen { channel: RelayChannel; token: string; role: number; resumeFromSeq: string; } /** Encode a `StreamOpen`, byte-compatible with `StreamOpen.encode(...).finish()`. */ export declare function encodeStreamOpen(message: RelayStreamOpen): Uint8Array; /** Encode an intentional viewer detach. Transport loss omits this message so * reconnect/resume remains available. */ export declare function encodeStreamClose(message: { channelId: string; reason: number; message: string; }): Uint8Array; /** Encode a viewer→agent PTY input `StreamFrame`. */ export declare function encodeStreamFrame(message: { channelId: string; seq: string; data: Uint8Array; producedAtMs: string; }): Uint8Array; /** Decode a `StreamOpenAck` (we need `accepted` + the error message). */ export declare function decodeStreamOpenAck(bytes: Uint8Array): { accepted: boolean; error?: { message?: string; }; }; /** Decode the sequence plus `data` from a `StreamFrame`. */ export declare function decodeStreamFrame(bytes: Uint8Array): { seq: string; data: Uint8Array; };