export interface GlitchComponentConfig { id: string name: string version: string params: Record } export interface GlitchHostBridge { playSound?: (id: string, payload?: Record) => void stopSound?: (id: string, payload?: Record) => void emit?: (type: string, payload?: unknown) => void } export interface GlitchTheme { primary: string accent: string bg: string bgSecondary: string text: string textMuted: string border: string } export interface GlitchComponentResult { success: boolean score?: number data?: unknown error?: string } export interface GlitchComponentProps { config: GlitchComponentConfig onComplete: (result: GlitchComponentResult) => void onProgress?: (percent: number) => void theme?: GlitchTheme className?: string host?: GlitchHostBridge } export interface ParamSchema { [key: string]: { type: 'number' | 'string' | 'boolean' | 'color' | 'select' | 'range' label?: string description?: string default: unknown options?: { value: string | number; label: string }[] min?: number max?: number step?: number } } export interface GlitchComponentMetadata { name: string displayName: string version: string paramSchema: ParamSchema defaultParams: Record }