import { AnalyticsEvent, type Optional } from '@sudobility/types'; import type { AnalyticsClient, AnalyticsContextProvider, AnalyticsEventData } from '../analytics/analytics.js'; import type { PlatformAnalytics } from '../analytics/platform-analytics.js'; export interface RecordedAnalyticsEvent { event: AnalyticsEvent | string; parameters?: Record | undefined; timestamp: number; } export declare class MockAnalyticsClient implements AnalyticsClient { private events; private userProperties; private userId; private enabled; private currentScreen; trackEvent(event: AnalyticsEvent | AnalyticsEventData): void; setUserProperties(properties: Record): void; setUserId(userId: Optional): void; setAnalyticsEnabled(enabled: boolean): void; setCurrentScreen(screenName: string, screenClass?: Optional): void; getTrackedEvents(): RecordedAnalyticsEvent[]; getEventsByType(eventType: AnalyticsEvent): RecordedAnalyticsEvent[]; getLastEvent(): RecordedAnalyticsEvent | undefined; getUserProperties(): Record; getUserId(): Optional; isEnabled(): boolean; getCurrentScreen(): { name: string; class?: Optional; } | null; reset(): void; } export declare class MockAnalyticsContextProvider implements AnalyticsContextProvider { private context; constructor(initialContext?: Record); getCurrentContext(): Record; setContext(context: Record): void; addContext(key: string, value: unknown): void; reset(): void; } export declare class MockPlatformAnalytics implements PlatformAnalytics { private events; private userProperties; private userId; private enabled; trackEvent(event: string, properties: Record): void; setUserProperty(key: string, value: string): void; setUserId(userId: string): void; isEnabled(): boolean; getTrackedEvents(): Array<{ event: string; properties: Record; }>; getEventsByName(eventName: string): Array<{ event: string; properties: Record; }>; getUserProperties(): Record; getUserId(): string; setEnabled(enabled: boolean): void; reset(): void; } //# sourceMappingURL=analytics.mock.d.ts.map