// Generated from src/ws/protocol-schema.json by scripts/generate-protocol-types.js. export type RedWebProtocolErrorCode = | 'INVALID_MESSAGE' | 'INVALID_PAYLOAD' | 'UNKNOWN_HANDLER' | 'HANDLER_FAILED' | 'BINARY_UNSUPPORTED' | 'RATE_LIMITED' | 'QUEUE_FULL' | 'CAPACITY_REACHED' | 'INITIALIZATION_FAILED' | 'ACCESS_DENIED' | 'ACCESS_TIMEOUT' | 'ACCESS_CANCELLED' | 'ACCESS_CAPACITY'; export interface ProtocolMetadata { requestId?: string; sequence?: number; } export interface ProtocolEnvelope extends ProtocolMetadata { v: string; type: string; payload: T; } export interface ProtocolErrorEnvelope extends ProtocolMetadata { v: string; type: 'error'; error: { code: RedWebProtocolErrorCode | string; message: string }; } export interface SendableSocket { send(data: string): unknown; } export class ProtocolClient { constructor(socket: SendableSocket, version: string); readonly socket: SendableSocket; readonly version: string; envelope(type: string, payload: T, metadata?: ProtocolMetadata): ProtocolEnvelope; send(type: string, payload: T, metadata?: ProtocolMetadata): void; parse(input: string | Uint8Array | ArrayBuffer | { data: string | Uint8Array | ArrayBuffer }): ProtocolEnvelope | ProtocolErrorEnvelope; } export const ERROR_CODES: { readonly [Code in RedWebProtocolErrorCode]: Code };