Set up the complete project foundation for ClawX, a graphical AI assistant: - Electron main process with IPC handlers, menu, tray, and gateway management - React renderer with routing, layout components, and page scaffolding - Zustand state management for gateway, settings, channels, skills, chat, and cron - shadcn/ui components with Tailwind CSS and CSS variable theming - Build tooling with Vite, electron-builder, and TypeScript configuration - Testing setup with Vitest and Playwright - Development configurations (ESLint, Prettier, gitignore, env example)
27 lines
656 B
TypeScript
27 lines
656 B
TypeScript
/**
|
|
* Electron API Type Declarations
|
|
* Types for the APIs exposed via contextBridge
|
|
*/
|
|
|
|
export interface IpcRenderer {
|
|
invoke(channel: string, ...args: unknown[]): Promise<unknown>;
|
|
on(channel: string, callback: (...args: unknown[]) => void): (() => void) | void;
|
|
once(channel: string, callback: (...args: unknown[]) => void): void;
|
|
off(channel: string, callback?: (...args: unknown[]) => void): void;
|
|
}
|
|
|
|
export interface ElectronAPI {
|
|
ipcRenderer: IpcRenderer;
|
|
openExternal: (url: string) => Promise<void>;
|
|
platform: NodeJS.Platform;
|
|
isDev: boolean;
|
|
}
|
|
|
|
declare global {
|
|
interface Window {
|
|
electron: ElectronAPI;
|
|
}
|
|
}
|
|
|
|
export {};
|