import { ElementRef, OnDestroy } from '@angular/core';
import { MatomoTracker } from '../tracker/matomo-tracker.service';
import * as i0 from "@angular/core";
export interface TrackArgs {
    category?: string;
    action?: string;
    name?: string;
    value?: number;
}
type EventName = keyof GlobalEventHandlersEventMap | string;
type DOMEventInput = EventName | EventName[] | null | undefined;
export declare class MatomoTrackerDirective implements OnDestroy {
    private readonly tracker;
    private readonly elementRef;
    private sub?;
    /** Set the event category */
    matomoCategory?: string;
    /** Set the event action */
    matomoAction?: string;
    /** Set the event name */
    matomoName?: string;
    /** Set the event value */
    matomoValue?: number;
    constructor(tracker: MatomoTracker, elementRef: ElementRef);
    /** Track a Matomo event whenever specified DOM event is triggered */
    set matomoTracker(input: DOMEventInput);
    ngOnDestroy(): void;
    /** Track an event using category, action, name and value set as @Input() */
    trackEvent(): void;
    /** Track an event using category, action and name set as @Input() and provided value */
    trackEvent(value: number): void;
    /** Track an event using category and action set as @Input() and provided name and value */
    trackEvent(name: string, value?: number): void;
    /** Track an event using provided category, action, name and value (any @Input() is used as a default value) */
    trackEvent(args: TrackArgs): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MatomoTrackerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MatomoTrackerDirective, "[matomoTracker]", ["matomo"], { "matomoCategory": { "alias": "matomoCategory"; "required": false; }; "matomoAction": { "alias": "matomoAction"; "required": false; }; "matomoName": { "alias": "matomoName"; "required": false; }; "matomoValue": { "alias": "matomoValue"; "required": false; }; "matomoTracker": { "alias": "matomoTracker"; "required": false; }; }, {}, never, never, true, never>;
}
export {};
