import 'dart:async'; import 'src/config/analytics_config.dart'; import 'src/core/analytics_core.dart'; import 'src/core/interceptors.dart'; import 'src/model/device_info.dart'; import 'src/model/recent_event_summary.dart'; import 'src/model/user_info.dart'; export 'src/config/analytics_config.dart'; export 'src/core/interceptors.dart'; export 'src/model/device_info.dart'; export 'src/model/event.dart'; export 'src/model/recent_event_summary.dart'; export 'src/model/user_info.dart'; /// 对外唯一入口(Facade)。 class Analytics { Analytics._(); static final AnalyticsCore _core = AnalyticsCore(); static Future init(AnalyticsConfig config) => _core.init(config); static Future track( String eventType, { Map? eventParams, Map? customTags, int? timestamp, }) { return _core.track( eventType, eventParams: eventParams, customTags: customTags, timestamp: timestamp, ); } static Future setUser(UserInfo? userInfo) => _core.setUser(userInfo); static Future setDeviceInfo(DeviceInfo deviceInfo) => _core.setDeviceInfo(deviceInfo); static Future flush({bool force = false}) => _core.flush(force: force); /// 当前本地缓存事件数量(用于调试/演示)。 static Future cachedEventCount() => _core.cachedEventCount(); /// 最近事件摘要(用于调试面板)。 static Future> cachedRecentEvents({int limit = 20}) => _core.cachedRecentEvents(limit: limit); /// Phase 2:手动触发一次配置刷新(默认强制刷新)。 static Future refreshConfig({bool force = true}) => _core.refreshConfig(force: force); /// Phase 3:立即上报一次 SDK 指标(调试/测试用)。 static Future reportMetricsNow() => _core.reportMetricsNow(); /// Phase 3:注册事件拦截器。 static void addInterceptor(AnalyticsInterceptor interceptor) { _core.addInterceptor(interceptor); } static void setDebug(bool enabled) { unawaited(_core.setDebug(enabled)); } /// 可选:当宿主确定不再需要 SDK 时调用。 static Future dispose() => _core.dispose(); }