import { AbstractAnalyticsTracker, IEventTrackingPayload, IPageViewTrackingPayload, ITimingTrackingPayload } from "./tracker";
import { IMatomoOptions } from "./mamotoTypes";
/**
 * Implementation of matomo tracker using a dynamically loaded snippet.
 *
 * For JavaScript API see here: https://developer.matomo.org/guides/tracking-javascript-guide
 *
 * Matomo supports up to 5 custom variables in each 'visit' and 'page scope:
 * -  The tracker sets visit-scope custom variables DeploymentId and OrganizationId at the beginning and
 *    never touches them
 *
 * -  The tracker clears page-scope custom variables before any interaction. In a followup different pages/events
 *    will send additional custom 'page' scope variables depending on the event context.
 */
export declare class MatomoTracker extends AbstractAnalyticsTracker {
    private readonly options;
    private readonly matomoFun;
    constructor(options: IMatomoOptions, matomoFun?: (cmd: string, parameters: any[]) => void);
    initialize(): Promise<void>;
    trackEvent: (payload: IEventTrackingPayload) => void;
    trackPageView: (payload: IPageViewTrackingPayload) => void;
    trackTiming: (_payload: ITimingTrackingPayload) => void;
    private matomoCall;
    private initializePaq;
    private loadScriptIfNeeded;
    private clearPageVariables;
}
