import { z } from "zod"; import type { DomSnapshot } from "../../shared/types.js"; export declare const ClientMessageSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodLiteral<"SNAPSHOT">; snapshot: z.ZodType; }, "strip", z.ZodTypeAny, { type: "SNAPSHOT"; snapshot: DomSnapshot; }, { type: "SNAPSHOT"; snapshot: DomSnapshot; }>, z.ZodObject<{ type: z.ZodLiteral<"SCROLL">; position: z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; }, "strip", z.ZodTypeAny, { x: number; y: number; }, { x: number; y: number; }>; }, "strip", z.ZodTypeAny, { type: "SCROLL"; position: { x: number; y: number; }; }, { type: "SCROLL"; position: { x: number; y: number; }; }>, z.ZodObject<{ type: z.ZodLiteral<"FOCUS">; selector: z.ZodString; }, "strip", z.ZodTypeAny, { type: "FOCUS"; selector: string; }, { type: "FOCUS"; selector: string; }>, z.ZodObject<{ type: z.ZodLiteral<"HEARTBEAT">; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "HEARTBEAT"; timestamp: number; }, { type: "HEARTBEAT"; timestamp: number; }>]>; export type ClientMessage = z.infer; export declare function parseClientMessage(raw: unknown): ClientMessage; export declare const ServerCommandSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodLiteral<"START_VIEWING">; }, "strip", z.ZodTypeAny, { type: "START_VIEWING"; }, { type: "START_VIEWING"; }>, z.ZodObject<{ type: z.ZodLiteral<"STOP_VIEWING">; }, "strip", z.ZodTypeAny, { type: "STOP_VIEWING"; }, { type: "STOP_VIEWING"; }>, z.ZodObject<{ type: z.ZodLiteral<"HIGHLIGHT">; selector: z.ZodString; message: z.ZodOptional; duration: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "HIGHLIGHT"; selector: string; message?: string | undefined; duration?: number | undefined; }, { type: "HIGHLIGHT"; selector: string; message?: string | undefined; duration?: number | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"SCROLL_TO">; selector: z.ZodString; }, "strip", z.ZodTypeAny, { type: "SCROLL_TO"; selector: string; }, { type: "SCROLL_TO"; selector: string; }>, z.ZodObject<{ type: z.ZodLiteral<"CLICK">; selector: z.ZodString; }, "strip", z.ZodTypeAny, { type: "CLICK"; selector: string; }, { type: "CLICK"; selector: string; }>, z.ZodObject<{ type: z.ZodLiteral<"FILL_FORM">; selector: z.ZodString; value: z.ZodString; }, "strip", z.ZodTypeAny, { type: "FILL_FORM"; value: string; selector: string; }, { type: "FILL_FORM"; value: string; selector: string; }>, z.ZodObject<{ type: z.ZodLiteral<"GUIDANCE">; x: z.ZodNumber; y: z.ZodNumber; label: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "GUIDANCE"; x: number; y: number; label?: string | undefined; }, { type: "GUIDANCE"; x: number; y: number; label?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"REQUEST_SNAPSHOT">; }, "strip", z.ZodTypeAny, { type: "REQUEST_SNAPSHOT"; }, { type: "REQUEST_SNAPSHOT"; }>, z.ZodObject<{ type: z.ZodLiteral<"CONFIRM_ACTION">; requestId: z.ZodString; message: z.ZodString; }, "strip", z.ZodTypeAny, { message: string; type: "CONFIRM_ACTION"; requestId: string; }, { message: string; type: "CONFIRM_ACTION"; requestId: string; }>]>; export type ServerCommand = z.infer; export declare function parseServerCommand(raw: unknown): ServerCommand; //# sourceMappingURL=protocol.d.ts.map