import { ActivityStats, ElementTrackingData, FormattedData, SessionData, TimeTrackingData, TrackerOptions } from './types';
export declare class PageTimeTracker {
    private startTime;
    private totalTime;
    private activeTime;
    private idleTime;
    private lastActivityTime;
    private isActive;
    private isVisible;
    private pageVisits;
    private sessionStartTime;
    private sessionId;
    private idleThreshold;
    private trackingInterval;
    private enableConsoleLog;
    private secureModeEnabled;
    private trackingKey;
    private onActivityChange?;
    private onTimeUpdate?;
    private onElementVisible?;
    private onElementHidden?;
    private onTrackingEvent?;
    private activityDetector;
    private elementVisibilityTracker;
    private mouseTracker;
    private scrollTracker;
    private keyboardTracker;
    private touchTracker;
    private focusTracker;
    private networkTracker;
    private intervalId?;
    private idleTimeoutId?;
    private isDestroyed;
    private activityHistory;
    private elementTrackingData;
    constructor(options?: TrackerOptions);
    private initializeTrackingModules;
    private initialize;
    private setupEventListeners;
    private handleActivity;
    private handleMouseActivity;
    private handleScrollActivity;
    private handleKeyboardActivity;
    private handleTouchActivity;
    private handleElementVisible;
    private handleElementHidden;
    private handleFocusChange;
    private handleNetworkChange;
    private handleVisibilityChange;
    private handleFocus;
    private handleBlur;
    private handleBeforeUnload;
    private setActiveState;
    private resetIdleTimer;
    private startTracking;
    private updateTotalTime;
    private recordTrackingEvent;
    private generateSessionId;
    private generateTrackingKey;
    private log;
    /**
     * Track a specific element by adding a tracking key
     */
    trackElement(element: Element | string, trackingKey: string, options?: {
        trackVisibility?: boolean;
        trackInteractions?: boolean;
        threshold?: number;
    }): void;
    /**
     * Stop tracking a specific element
     */
    untrackElement(trackingKey: string): void;
    /**
     * Get tracking data for a specific element
     */
    getElementTrackingData(trackingKey: string): ElementTrackingData | null;
    /**
     * Get all element tracking data
     */
    getAllElementTrackingData(): Map<string, ElementTrackingData>;
    /**
     * Get current page tracking data
     */
    getTrackingData(): TimeTrackingData;
    /**
     * Get formatted time data
     */
    getFormattedData(): FormattedData;
    /**
     * Get activity statistics
     */
    getActivityStats(): ActivityStats;
    private formatTime;
    /**
     * Reset all tracking data
     */
    reset(): void;
    /**
     * Pause tracking
     */
    pause(): void;
    /**
     * Resume tracking
     */
    resume(): void;
    /**
     * Check if tracker is currently active
     */
    isTracking(): boolean;
    /**
     * Get session information
     */
    getSessionInfo(): SessionData;
    /**
     * Export tracking data for analytics
     */
    exportData(): string;
    /**
     * Clean up and destroy the tracker
     */
    destroy(): void;
}
export default PageTimeTracker;
//# sourceMappingURL=PageTimeTracker.d.ts.map