export enum SystemState { IDLE = 'IDLE', RUNNING = 'RUNNING', ERROR = 'ERROR', PAUSED = 'PAUSED', } export interface AxisPosition { id: string; name: string; axis: 'X' | 'Y' | 'Z'; value: number; speed: number; acc: number; dec: number; } export interface Recipe { id: string; name: string; lastModified: string; } export interface IOPoint { id: number; name: string; type: 'input' | 'output'; state: boolean; } export interface LogEntry { id: number; timestamp: string; message: string; type: 'info' | 'warning' | 'error'; } export interface RobotTarget { x: number; y: number; z: number; } // WebView2 Native Bridge Types export interface ConfigItem { Key: string; Value: string; Group: string; Type: 'String' | 'Number' | 'Boolean'; Description: string; } declare global { interface Window { chrome?: { webview?: { hostObjects: { machine: { MoveAxis(axis: string, value: number): Promise; SetIO(id: number, isInput: boolean, state: boolean): Promise; SystemControl(command: string): Promise; SelectRecipe(recipeId: string): Promise; CopyRecipe(recipeId: string, newName: string): Promise; DeleteRecipe(recipeId: string): Promise; GetConfig(): Promise; GetIOList(): Promise; GetRecipeList(): Promise; GetRecipe(recipeTitle: string): Promise; SaveRecipe(recipeTitle: string, recipeData: string): Promise; SaveConfig(configJson: string): Promise; } }; addEventListener(type: string, listener: (event: any) => void): void; removeEventListener(type: string, listener: (event: any) => void): void; postMessage(message: any): void; } } } }