import { COMPONENT_CLICK, COMPONENT_HOVER, COMPONENT, PROFILE_CHANGE, PAGE_HIDDEN, type ProfileChangedPayload, type InterestedInClickedElements, type InterestedInSeenElements, type InterestedInProfileChange, type InterestedInHiddenPage, type AcceptsCredentials, type Credentials, AnalyticsInstance } from '@ninetailed/experience.js';
import { type ComponentClickEvent, type ComponentHoverEvent, type ComponentViewEvent } from '@ninetailed/experience.js-shared';
import type { EventBuilder, InterestedInSeenVariables, RequiresEventBuilder } from '@ninetailed/experience.js';
import { ElementClickedPayload, ElementHoveredPayload, ElementSeenPayload, VariableSeenPayload, EventHandler, NinetailedPlugin } from '@ninetailed/experience.js-plugin-analytics';
export declare class NinetailedInsightsPlugin extends NinetailedPlugin implements InterestedInSeenElements, InterestedInClickedElements, InterestedInSeenVariables, InterestedInProfileChange, InterestedInHiddenPage, AcceptsCredentials, RequiresEventBuilder {
    name: string;
    private seenElements;
    private seenVariables;
    private profile?;
    private events;
    private eventsQueue;
    private static MAX_EVENTS;
    private insightsApiClient?;
    private readonly insightsApiClientUrl?;
    private instance?;
    private eventBuilder?;
    constructor({ url }?: {
        url?: string;
    });
    initialize: ({ instance }: {
        instance: AnalyticsInstance;
    }) => Promise<void>;
    onHasSeenElement: EventHandler<ElementSeenPayload>;
    [COMPONENT]: EventHandler<ComponentViewEvent>;
    onHasClickedElement: EventHandler<ElementClickedPayload>;
    [COMPONENT_CLICK]: EventHandler<ComponentClickEvent>;
    onHasHoveredElement: EventHandler<ElementHoveredPayload>;
    [COMPONENT_HOVER]: EventHandler<ComponentHoverEvent>;
    onHasSeenVariable: EventHandler<VariableSeenPayload>;
    [PROFILE_CHANGE]: EventHandler<ProfileChangedPayload>;
    [PAGE_HIDDEN]: () => void;
    private createEventsBatch;
    private shouldFlushEventsQueue;
    private flushEventsQueue;
    setCredentials(credentials: Credentials): void;
    setEventBuilder(eventBuilder: EventBuilder): void;
}
