export enum AppState { SETUP = 'SETUP', CREATION = 'CREATION', RIGGING = 'RIGGING', STUDIO = 'STUDIO', } export interface Rect { x: number; y: number; w: number; h: number; } export interface AvatarConfig { imageUrl: string; name: string; description: string; leftEye?: Rect; rightEye?: Rect; mouth?: Rect; skinColor?: string; textureClosedEye?: Rect; textureOpenMouth?: Rect; mainBody?: Rect; chromaKeyColor?: string; } export interface TrackingData { rotationX: number; // Pitch rotationY: number; // Yaw rotationZ: number; // Roll translationX: number; translationY: number; mouthOpen: number; isBlinkingLeft: boolean; isBlinkingRight: boolean; } export interface AIStudio { hasSelectedApiKey(): Promise; openSelectKey(): Promise; } // Make `window.aistudio` available globally in the browser environment declare global { interface Window { aistudio?: AIStudio; // electronAPI is injected by the preload script when running inside Electron electronAPI?: { generateAvatar: (prompt: string) => Promise<{ image: string }> }; } }