import { z } from 'zod'; import type { WebSocket } from 'ws'; export declare const DeviceStatus: { readonly PENDING: "pending"; readonly APPROVED: "approved"; readonly REJECTED: "rejected"; }; export type DeviceStatus = (typeof DeviceStatus)[keyof typeof DeviceStatus]; export declare const Platform: { readonly ANDROID: "android"; readonly IOS: "ios"; }; export type Platform = (typeof Platform)[keyof typeof Platform]; export interface ExtendedDeviceInfo { cpuAbi: string; supportedAbis: string[]; securityPatch: string | null; buildType: string; buildTags: string; radioVersion: string | null; totalRam: number; availableRam: number; totalStorage: number; availableStorage: number; screenRefreshRate: number; screen?: { widthPixels: number; heightPixels: number; density: number; densityDpi: number; }; batteryCapacity: number | null; uptimeMillis: number; timezone: string; locale: string; } export declare const DeviceSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; model: z.ZodString; manufacturer: z.ZodString; platform: z.ZodEnum<["android", "ios"]>; osVersion: z.ZodString; status: z.ZodEnum<["pending", "approved", "rejected"]>; lastSeen: z.ZodNumber; createdAt: z.ZodNumber; extendedInfo: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; name: string; model: string; manufacturer: string; platform: "android" | "ios"; status: "pending" | "approved" | "rejected"; osVersion: string; lastSeen: number; createdAt: number; extendedInfo?: ExtendedDeviceInfo | undefined; }, { id: string; name: string; model: string; manufacturer: string; platform: "android" | "ios"; status: "pending" | "approved" | "rejected"; osVersion: string; lastSeen: number; createdAt: number; extendedInfo?: ExtendedDeviceInfo | undefined; }>; export type Device = z.infer; export declare const WsMessageType: { readonly AUTH: "auth"; readonly COMMAND_RESPONSE: "command_response"; readonly EVENT: "event"; readonly HEARTBEAT: "heartbeat"; readonly AUTH_RESULT: "auth_result"; readonly COMMAND: "command"; readonly HEARTBEAT_ACK: "heartbeat_ack"; }; export type WsMessageType = (typeof WsMessageType)[keyof typeof WsMessageType]; export declare const AuthMessageSchema: z.ZodObject<{ type: z.ZodLiteral<"auth">; deviceId: z.ZodString; deviceName: z.ZodString; model: z.ZodString; manufacturer: z.ZodString; platform: z.ZodEnum<["android", "ios"]>; osVersion: z.ZodString; appVersion: z.ZodString; }, "strip", z.ZodTypeAny, { model: string; manufacturer: string; platform: "android" | "ios"; type: "auth"; osVersion: string; deviceId: string; deviceName: string; appVersion: string; }, { model: string; manufacturer: string; platform: "android" | "ios"; type: "auth"; osVersion: string; deviceId: string; deviceName: string; appVersion: string; }>; export type AuthMessage = z.infer; export declare const AuthResultSchema: z.ZodObject<{ type: z.ZodLiteral<"auth_result">; success: z.ZodBoolean; status: z.ZodEnum<["pending", "approved", "rejected"]>; message: z.ZodOptional; }, "strip", z.ZodTypeAny, { status: "pending" | "approved" | "rejected"; type: "auth_result"; success: boolean; message?: string | undefined; }, { status: "pending" | "approved" | "rejected"; type: "auth_result"; success: boolean; message?: string | undefined; }>; export type AuthResult = z.infer; export declare const CommandSchema: z.ZodObject<{ type: z.ZodLiteral<"command">; id: z.ZodString; action: z.ZodString; params: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; type: "command"; action: string; params?: Record | undefined; }, { id: string; type: "command"; action: string; params?: Record | undefined; }>; export type Command = z.infer; export declare const CommandResponseSchema: z.ZodObject<{ type: z.ZodLiteral<"command_response">; id: z.ZodString; success: z.ZodBoolean; data: z.ZodOptional>; error: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; type: "command_response"; success: boolean; data?: unknown; error?: string | null | undefined; }, { id: string; type: "command_response"; success: boolean; data?: unknown; error?: string | null | undefined; }>; export type CommandResponse = z.infer; export declare const EventSchema: z.ZodObject<{ type: z.ZodLiteral<"event">; eventType: z.ZodString; data: z.ZodRecord; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "event"; data: Record; eventType: string; timestamp: number; }, { type: "event"; data: Record; eventType: string; timestamp: number; }>; export type Event = z.infer; export declare const HeartbeatSchema: z.ZodObject<{ type: z.ZodLiteral<"heartbeat">; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "heartbeat"; timestamp: number; }, { type: "heartbeat"; timestamp: number; }>; export type Heartbeat = z.infer; export declare const WsMessageSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodLiteral<"auth">; deviceId: z.ZodString; deviceName: z.ZodString; model: z.ZodString; manufacturer: z.ZodString; platform: z.ZodEnum<["android", "ios"]>; osVersion: z.ZodString; appVersion: z.ZodString; }, "strip", z.ZodTypeAny, { model: string; manufacturer: string; platform: "android" | "ios"; type: "auth"; osVersion: string; deviceId: string; deviceName: string; appVersion: string; }, { model: string; manufacturer: string; platform: "android" | "ios"; type: "auth"; osVersion: string; deviceId: string; deviceName: string; appVersion: string; }>, z.ZodObject<{ type: z.ZodLiteral<"auth_result">; success: z.ZodBoolean; status: z.ZodEnum<["pending", "approved", "rejected"]>; message: z.ZodOptional; }, "strip", z.ZodTypeAny, { status: "pending" | "approved" | "rejected"; type: "auth_result"; success: boolean; message?: string | undefined; }, { status: "pending" | "approved" | "rejected"; type: "auth_result"; success: boolean; message?: string | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"command">; id: z.ZodString; action: z.ZodString; params: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; type: "command"; action: string; params?: Record | undefined; }, { id: string; type: "command"; action: string; params?: Record | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"command_response">; id: z.ZodString; success: z.ZodBoolean; data: z.ZodOptional>; error: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; type: "command_response"; success: boolean; data?: unknown; error?: string | null | undefined; }, { id: string; type: "command_response"; success: boolean; data?: unknown; error?: string | null | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"event">; eventType: z.ZodString; data: z.ZodRecord; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "event"; data: Record; eventType: string; timestamp: number; }, { type: "event"; data: Record; eventType: string; timestamp: number; }>, z.ZodObject<{ type: z.ZodLiteral<"heartbeat">; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "heartbeat"; timestamp: number; }, { type: "heartbeat"; timestamp: number; }>, z.ZodObject<{ type: z.ZodLiteral<"heartbeat_ack">; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "heartbeat_ack"; timestamp: number; }, { type: "heartbeat_ack"; timestamp: number; }>]>; export type WsMessage = z.infer; export declare const LogEntrySchema: z.ZodObject<{ id: z.ZodNumber; deviceId: z.ZodString; level: z.ZodEnum<["debug", "info", "warn", "error"]>; message: z.ZodString; data: z.ZodOptional; timestamp: z.ZodNumber; }, "strip", z.ZodTypeAny, { id: number; message: string; deviceId: string; timestamp: number; level: "error" | "debug" | "info" | "warn"; data?: string | undefined; }, { id: number; message: string; deviceId: string; timestamp: number; level: "error" | "debug" | "info" | "warn"; data?: string | undefined; }>; export type LogEntry = z.infer; export interface McpToolDefinition { name: string; description: string; inputSchema: z.ZodType; } export interface ConnectedDevice { device: Device; ws: WebSocket; lastHeartbeat: number; pendingCommands: Map void; reject: (error: Error) => void; timeout: NodeJS.Timeout; }>; } export declare const ServerConfigSchema: z.ZodObject<{ wsPort: z.ZodDefault; dashboardPort: z.ZodDefault; dbPath: z.ZodDefault; commandTimeout: z.ZodDefault; heartbeatInterval: z.ZodDefault; heartbeatTimeout: z.ZodDefault; }, "strip", z.ZodTypeAny, { wsPort: number; dashboardPort: number; dbPath: string; commandTimeout: number; heartbeatInterval: number; heartbeatTimeout: number; }, { wsPort?: number | undefined; dashboardPort?: number | undefined; dbPath?: string | undefined; commandTimeout?: number | undefined; heartbeatInterval?: number | undefined; heartbeatTimeout?: number | undefined; }>; export type ServerConfig = z.infer; //# sourceMappingURL=index.d.ts.map