ngx-matomo-client
Version:
Matomo (fka. Piwik) client for Angular applications
26 lines (25 loc) • 1.63 kB
TypeScript
import { Getters, NonEmptyArray, PrefixedType } from '../utils/types';
import * as i0 from "@angular/core";
type ReturnType<T> = T extends (...args: any) => infer R ? R : any;
export type InternalMatomoTrackerType = Pick<InternalMatomoTracker<unknown, string>, 'get' | 'push' | 'pushFn'>;
export declare function createInternalMatomoTracker(): InternalMatomoTrackerType;
export declare class InternalMatomoTracker<MATOMO, PREFIX extends string = ''> {
private readonly ngZone;
private readonly config;
constructor();
/** Asynchronously call provided method name on matomo tracker instance */
get<K extends Getters<PrefixedType<MATOMO, PREFIX>>>(getter: K extends keyof PrefixedType<MATOMO, PREFIX> ? K : never): Promise<ReturnType<PrefixedType<MATOMO, PREFIX>[K]>>;
pushFn<T>(fn: (matomo: PrefixedType<MATOMO, PREFIX>) => T): Promise<T>;
push(args: NonEmptyArray<unknown>): void;
static ɵfac: i0.ɵɵFactoryDeclaration<InternalMatomoTracker<any, any>, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<InternalMatomoTracker<any, any>>;
}
export declare class NoopMatomoTracker<MATOMO = unknown, PREFIX extends string = ''> implements InternalMatomoTrackerType {
/** Asynchronously call provided method name on matomo tracker instance */
get<K extends keyof PrefixedType<MATOMO, PREFIX>>(_: K): Promise<never>;
push(_: unknown[]): void;
pushFn<T>(_: (matomo: PrefixedType<MATOMO, PREFIX>) => T): Promise<T>;
static ɵfac: i0.ɵɵFactoryDeclaration<NoopMatomoTracker<any, any>, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<NoopMatomoTracker<any, any>>;
}
export {};