1pub(crate) mod error;
2pub(crate) mod extension;
3pub mod models;
4pub(crate) mod repository;
5pub(crate) mod services;
6
7pub use extension::AnalyticsExtension;
8
9pub use error::{AnalyticsError, Result as AnalyticsResult};
10
11pub use models::{
12 ActivityTrend, AnalyticsEvent, AnalyticsEventBatchResponse, AnalyticsEventCreated,
13 AnalyticsEventType, AnalyticsSession, BotTrafficStats, BrowserBreakdown, ContentStat,
14 ConversationByAgent, ConversationSummary, ConversationTrend, ConversionEventData, CostOverview,
15 CreateAnalyticsEventBatchInput, CreateAnalyticsEventInput, CreateEngagementEventInput,
16 CreateFunnelInput, CreateFunnelStepInput, DeviceBreakdown, EngagementEvent,
17 EngagementEventData, EngagementOptionalMetrics, ErrorSummary, FingerprintAnalysisResult,
18 FingerprintReputation, FlagReason, Funnel, FunnelMatchType, FunnelProgress, FunnelStats,
19 FunnelStep, FunnelStepStats, FunnelWithSteps, GeographicBreakdown, LinkClickEventData,
20 PlatformOverview, RecentConversation, ScrollEventData, TopAgent, TopTool, TopUser,
21 TrafficSource, TrafficSummary, UserMetricsWithTrends,
22};
23pub use repository::{
24 ABUSE_THRESHOLD_FOR_BAN, AgentAnalyticsRepository, AnalyticsEventsRepository,
25 AnalyticsQueryRepository, CliSessionAnalyticsRepository, ContentAnalyticsRepository,
26 ConversationAnalyticsRepository, CoreStatsRepository, CostAnalyticsRepository,
27 CreateSessionParams, EngagementRepository, FingerprintRepository, FunnelRepository,
28 HIGH_REQUEST_THRESHOLD, HIGH_VELOCITY_RPM, MAX_SESSIONS_PER_FINGERPRINT,
29 OverviewAnalyticsRepository, ProviderUsage, RequestAnalyticsRepository,
30 SUSTAINED_VELOCITY_MINUTES, SessionBehavioralData, SessionEngagementSummary,
31 SessionMigrationResult, SessionRecord, SessionRepository, StoredAnalyticsEvent,
32 ToolAnalyticsRepository, ToolListParams, TrafficAnalyticsRepository,
33};
34pub use services::bot_keywords::matches_bot_pattern;
35pub use services::{
36 AnalyticsAiSessionProvider, AnalyticsService, AnomalyCheckResult, AnomalyDetectionService,
37 AnomalyEvent, AnomalyLevel, AnomalyThresholdConfig, BEHAVIORAL_BOT_THRESHOLD,
38 BehavioralAnalysisInput, BehavioralAnalysisResult, BehavioralBotDetector, BehavioralSignal,
39 CreateAnalyticsSessionInput, EscalationCriteria, SessionAnalytics, SessionCleanupService,
40 SignalType, ThrottleLevel, ThrottleService, detection,
41};
42
43#[cfg(feature = "geolocation")]
44pub type GeoIpReader = std::sync::Arc<maxminddb::Reader<Vec<u8>>>;
45#[cfg(not(feature = "geolocation"))]
46pub type GeoIpReader = std::sync::Arc<()>;