import type { LoopKitConfig, IBrowserFeatures } from '../types/index.js';
import type { Logger } from '../utils/Logger.js';
import type { EventTracker } from './EventTracker.js';
import type { SessionManager } from './SessionManager.js';
import type { QueueManager } from './QueueManager.js';
import type { INetworkManager } from '../types/index.js';
/**
 * Browser features for auto-tracking and browser-specific functionality
 */
export declare class BrowserFeatures implements IBrowserFeatures {
    private config;
    private logger;
    private eventTracker;
    private sessionManager;
    private queueManager;
    private networkManager?;
    private clickHandler?;
    private errorHandler?;
    private unloadHandler?;
    constructor(config: LoopKitConfig, logger: Logger, eventTracker: EventTracker, sessionManager: SessionManager, queueManager: QueueManager);
    /**
     * Setup all browser features based on configuration
     */
    setupFeatures(): void;
    /**
     * Setup automatic click tracking
     */
    setupAutoClickTracking(): void;
    /**
     * Setup automatic page view tracking
     */
    setupAutoPageViews(): void;
    /**
     * Setup error tracking
     */
    setupErrorTracking(): void;
    /**
     * Setup page unload handling
     */
    setupPageUnloadHandling(): void;
    /**
     * Update configuration
     */
    updateConfig(config: LoopKitConfig): void;
    /**
     * Set network manager
     */
    setNetworkManager(networkManager: INetworkManager): void;
    /**
     * Track a page view
     */
    private trackPageView;
    /**
     * Find clickable element by walking up the DOM
     */
    private findClickableElement;
    /**
     * Extract click properties from element
     */
    private extractClickProperties;
    /**
     * Get element type for analytics
     */
    private getElementType;
    /**
     * Get readable text from element
     */
    private getElementText;
}
//# sourceMappingURL=BrowserFeatures.d.ts.map