export type ObjPath = ReadonlyArray; export type Seq = number; export interface SetMessage { type: "set"; obj: ObjPath; seq: Seq; payload: unknown; } export interface GetMessage { type: "get"; obj?: ObjPath; seq: Seq; } export interface CmdMessage { type: "cmd"; seq: Seq; payload: unknown; } export type OutgoingMessage = SetMessage | GetMessage | CmdMessage; export interface AckResponse { type: "ack"; seq: Seq; } export interface GetResponse { type: "get_resp"; seq?: Seq; obj?: ObjPath; payload: unknown; } export interface UpdateResponse { type: "update"; payload: unknown; } export interface ErrorResponse { type: "error"; seq?: Seq; /** Human-readable error message. The protocol reuses the `obj` field for it. */ obj?: string; } export type IncomingMessage = AckResponse | GetResponse | UpdateResponse | ErrorResponse; /** Thrown/rejected when the device rejects a request with a `type:"error"` reply. */ export declare class GlobconError extends Error { readonly seq?: Seq | undefined; constructor(message: string, seq?: Seq | undefined); } export declare function encodeMessage(msg: OutgoingMessage): string; export declare function decodeMessage(line: string): IncomingMessage;