export type AnalyticsEventName = | 'page_view' | 'section_view' | 'navigation_click' | 'locale_change' | 'theme_change' | 'mobile_nav_open' | 'mobile_nav_close' | 'product_tour_open' | 'product_tour_step' | 'product_tour_complete' | 'product_tour_close' | 'demo_open' | 'demo_submit_attempt' | 'demo_validation_error' | 'demo_submit_success' | 'demo_submit_failure' | 'demo_close' | 'faq_open'; export interface AnalyticsContext { routeId: string; locale: 'en' | 'fr' | 'ar'; direction: 'ltr' | 'rtl'; resolvedTheme: 'light' | 'dark'; source?: string; step?: number; errorCode?: string; } export interface AnalyticsAdapter { consentGranted(): boolean; track(name: AnalyticsEventName, context: AnalyticsContext): void; } export const forbiddenPayloadKeys = [ 'name', 'email', 'company', 'message', 'phone', 'fieldValue', 'serverResponse', ] as const;