What problem does it solve? Frontend code in a Tauri v2 desktop app needs to react to events emitted from the Rust backend, and doing this incorrectly causes type mismatches, missed webview-scoped events, and memory leaks from listeners that are never unsubscribed. ## Core Features & Use Cases - Typed Event Subscriptions: Subscribe to global and webview-specific events using listen, once, and getCurrentWebviewWindow with TypeScript generics matching Rust payload structs. - Lifecycle Cleanup Patterns: Provides unlisten patterns for React, Vue, and Svelte components, plus multi-listener cleanup and an event bus abstraction. - Rust Emit Reference: Shows the corresponding emit, emit_to, and emit_filter Rust code so frontend and backend event contracts stay aligned. - Use Case: When building a download manager UI in a Tauri app, use this Skill to wire up typed download-progress listeners that update the interface and clean themselves up when the component unmounts. ## Quick Start Show me how to listen for a typed download-progress event from my Tauri Rust backend in a React component with proper cleanup.