import { DevSkinConfig } from './types'; declare class DevSkinSDK { private config; private transport; private sessionId; private userId; private anonymousId; private sessionStartTime; private initialized; private initializing; private heartbeatInterval; private deviceCollector; private locationCollector; private browserCollector; private performanceCollector; private errorCollector; private networkCollector; private heatmapCollector; private screenshotCollector; private rrwebRecorder; /** * Detect if the current visitor is a bot/crawler */ private isBot; /** * Initialize the DevSkin SDK * Uses requestIdleCallback to defer heavy initialization without blocking the page */ init(config: DevSkinConfig): void; /** * Track a custom event * Works immediately after init() even if heavy collectors are still loading */ track(eventName: string, properties?: Record): void; /** * Track a page view */ trackPageView(properties?: Record): void; /** * Identify a user * Works immediately after init() even if heavy collectors are still loading */ identify(userId: string, traits?: Record): void; /** * Capture an error manually */ captureError(error: Error, context?: Record): void; /** * Add breadcrumb for debugging */ addBreadcrumb(breadcrumb: { category: string; message: string; level?: 'info' | 'warning' | 'error'; data?: Record; }): void; /** * Start/stop session recording */ startRecording(): void; stopRecording(): void; /** * Opt out/in */ optOut(): void; optIn(): void; /** * Private methods */ private startSession; private getContextData; private getOrCreateAnonymousId; private generateId; private setupVisibilityTracking; /** * Hook em history.pushState/replaceState/popstate pra disparar nova * captura de screenshot quando o usuário navega numa SPA (sem reload). * Sem isso, a foto da primeira rota fica como "screenshot da sessão" * inteira, e rotas subsequentes nunca são capturadas. */ private setupRouteChangeCapture; private setupUnloadTracking; /** * Start heartbeat to update session duration periodically */ private startHeartbeat; /** * Update session duration */ private updateSessionDuration; } declare const sdk: DevSkinSDK; export default sdk; //# sourceMappingURL=index.d.ts.map