export type EventCallback = (data: T) => void; export interface IEventBus { on(event: string, callback: EventCallback): void; off(event: string, callback: EventCallback): void; emit(event: string, data?: T): void; once(event: string, callback: EventCallback): void; clear(): void; } export interface ComponentEvents { 'capture-completed': any; 'ready': boolean; 'camera-changed': string; 'detection-updated': any[]; 'state-changed': any; 'error': Error; }