import type { I18n, MessageKey } from '../i18n'; export interface ModelContext { i18n: I18n; } export interface ModelInstance { /** Release animation frames, GPU resources, observers, and event listeners. */ dispose(): void; } export interface ModelDefinition { id: string; titleKey: MessageKey; mount(host: HTMLElement, context: ModelContext): ModelInstance | Promise; }