import { AnalyticsInstance } from 'analytics';
import { DotCMSAnalyticsConfig } from '../../shared/models';
/**
 * Impression Plugin for DotAnalytics
 * Handles automatic tracking of content visibility and impressions.
 *
 * This plugin initializes the impression tracker which:
 * - Uses IntersectionObserver to detect when contentlets are visible
 * - Tracks dwell time (how long elements are visible)
 * - Fires 'content-impression' events via instance.track()
 * - Deduplicates impressions per session
 *
 * Plugin execution in Analytics.js pipeline:
 * 1. Identity Plugin - Injects context
 * 2. Enricher Plugin - Enriches event data
 * 3. Main Plugin - Sends to queue/server
 * 4. Impression Plugin - Runs independently, fires events via instance.track()
 *
 * Note: This plugin is only registered if config.impressions is enabled.
 * See getEnhancedTrackingPlugins() for conditional loading logic.
 *
 * @param {DotCMSAnalyticsConfig} config - Configuration with impressions settings
 * @returns {Object} Plugin object with lifecycle methods
 */
export declare const dotAnalyticsImpressionPlugin: (config: DotCMSAnalyticsConfig) => {
    name: string;
    /**
     * Initialize impression tracking
     * Called when Analytics.js initializes the plugin with instance context
     * @param instance - Analytics.js instance with track method
     */
    initialize: ({ instance }: {
        instance: AnalyticsInstance;
    }) => Promise<void>;
    /**
     * Setup cleanup handlers when plugin is loaded
     * Called after Analytics.js completes plugin loading
     */
    loaded: () => boolean;
};
