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; Motion?: string; BCD_1D?: boolean; BCD_QR?: boolean; BCD_DM?: boolean; DisableCamera?: boolean; DisablePrinter?: boolean; AutoOutConveyor?: number; [key: string]: any; } 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; } export interface ProcessedDataRow { target: string; JTYPE: string; STIME: string; BATCH: string; SID: string; RID: string; VNAME: string; LOC: string; QTY: number; qtymax: number; MFGDATE: string; VLOT: string; PARTNO: string; MCN: string; REMARK: string; PRNATTACH: boolean; PRNVALID: boolean; } 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; InitializeDevice(): Promise; GetInitializeStatus(): Promise; GetProcessedData(): Promise; // Vision control methods CameraConnect(): Promise; CameraDisconnect(): Promise; CameraGetImage(): Promise; CameraLiveView(): Promise; CameraReadTest(): Promise; KeyenceTriggerOn(): Promise; KeyenceTriggerOff(): Promise; KeyenceGetImage(): Promise; KeyenceSaveImage(): Promise; // Light, Manual Print, Cancel Job ToggleLight(): Promise; ExecuteManualPrint(sid: string, venderLot: string, qty: string, mfg: string, rid: string, spy: string, partNo: string, printer: string, count: number): Promise; CancelJob(): Promise; // Manage, Manual, Log Viewer OpenManage(): Promise; CloseManage(): Promise; OpenManual(): Promise; OpenLogViewer(): Promise; // Folder operations OpenProgramFolder(): Promise; OpenLogFolder(): Promise; OpenScreenshotFolder(): Promise; OpenSavedDataFolder(): Promise; // Picker Move methods GetPickerStatus(): Promise; PickerMoveLeft(): Promise; PickerMoveLeftWait(): Promise; PickerMoveCenter(): Promise; PickerMoveRightWait(): Promise; PickerMoveRight(): Promise; PickerJogStart(direction: string): Promise; PickerJogStop(): Promise; PickerStop(): Promise; CancelVisionValidation(side: string): Promise; PickerManagePosition(side: string): Promise; PickerManageReturn(): Promise; PickerZHome(): Promise; PickerZZero(): Promise; PickerTestPrint(side: string): Promise; CanCloseManage(): Promise; // Interlock methods ToggleInterlock(axisIndex: number, lockIndex: number): Promise; GetInterlockList(): Promise; // HW Status methods GetHWStatus(): Promise; // History dialog OpenHistory(): Promise; // History data GetHistoryData(startDate: string, endDate: string, search: string): Promise; } }; addEventListener(type: string, listener: (event: any) => void): void; removeEventListener(type: string, listener: (event: any) => void): void; postMessage(message: any): void; } } } }