/** * Analytics module for SDK usage tracking via Sentry. * * Features: * - User identification (API key hash, wallet, domain, fingerprint, session) * - Method call tracking with timing, classified by {@link METHOD_CATEGORIES} * - Application attribution (`app.name`, `partner.id`, `partner.tier`, * `sdk.surface`) on every event and span * - API response time tracking * - Chain/network usage distribution * * @example * ```typescript * // Analytics enabled by default * const sdk = new AugustSDK({ * appName: 'acme-trader', * providers: { 1: 'https://...' }, * keys: { august: '...' }, * }); * * // Opt-out of analytics * const sdk = new AugustSDK({ * appName: 'acme-trader', * providers: { 1: 'https://...' }, * keys: { august: '...' }, * analytics: { enabled: false }, * }); * ``` */ export type { IAnalyticsConfig, IUserIdentity, IMethodCallMetrics, } from './types'; export { hashApiKey, getSessionId, generateFingerprint, createUserIdentity, getUserId, } from './user-identity'; export { initializeSentry, updateUser, clearUser, isAnalyticsEnabled, getSentry, resetAnalytics, captureSdkException, } from './sentry'; export { getSentrySDK, getSentryRuntime } from './sentry-runtime'; export { readEnv, isAnalyticsDisabledViaEnv, isAnalyticsForcedOnViaEnv, isNodeDevOrTestEnv, } from './env'; export { trackApiCall, trackNetworkSwitch, trackKeyVerification, getCacheStats, resetCacheStats, } from './metrics'; export { sanitizeArgs, sanitizeObject, computeArgShape } from './sanitize'; export { withMethodTracking, withSyncMethodTracking, instrumentClass, } from './instrumentation'; export { METHOD_CATEGORIES, getMethodCategory, type MethodCategory, } from './method-taxonomy'; export { chainIdToTagValue } from './chain-name';