1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | import { JsonObject } from '../json';
|
9 | import { Analytics, EventOptions, PageviewOptions, ScreenviewOptions, TimingOptions } from './api';
|
10 | export declare enum AnalyticsReportKind {
|
11 | Event = "event",
|
12 | Screenview = "screenview",
|
13 | Pageview = "pageview",
|
14 | Timing = "timing"
|
15 | }
|
16 | export interface AnalyticsReportBase extends JsonObject {
|
17 | kind: AnalyticsReportKind;
|
18 | }
|
19 | export interface AnalyticsReportEvent extends AnalyticsReportBase {
|
20 | kind: AnalyticsReportKind.Event;
|
21 | options: JsonObject & EventOptions;
|
22 | category: string;
|
23 | action: string;
|
24 | }
|
25 | export interface AnalyticsReportScreenview extends AnalyticsReportBase {
|
26 | kind: AnalyticsReportKind.Screenview;
|
27 | options: JsonObject & ScreenviewOptions;
|
28 | screenName: string;
|
29 | appName: string;
|
30 | }
|
31 | export interface AnalyticsReportPageview extends AnalyticsReportBase {
|
32 | kind: AnalyticsReportKind.Pageview;
|
33 | options: JsonObject & PageviewOptions;
|
34 | path: string;
|
35 | }
|
36 | export interface AnalyticsReportTiming extends AnalyticsReportBase {
|
37 | kind: AnalyticsReportKind.Timing;
|
38 | options: JsonObject & TimingOptions;
|
39 | category: string;
|
40 | variable: string;
|
41 | time: string | number;
|
42 | }
|
43 | export declare type AnalyticsReport = AnalyticsReportEvent | AnalyticsReportScreenview | AnalyticsReportPageview | AnalyticsReportTiming;
|
44 |
|
45 |
|
46 |
|
47 |
|
48 | export declare type AnalyticsForwarderFn = (report: JsonObject & AnalyticsReport) => void;
|
49 |
|
50 |
|
51 |
|
52 |
|
53 |
|
54 | export declare class ForwardingAnalytics implements Analytics {
|
55 | protected _fn: AnalyticsForwarderFn;
|
56 | constructor(_fn: AnalyticsForwarderFn);
|
57 | event(category: string, action: string, options?: EventOptions): void;
|
58 | screenview(screenName: string, appName: string, options?: ScreenviewOptions): void;
|
59 | pageview(path: string, options?: PageviewOptions): void;
|
60 | timing(category: string, variable: string, time: string | number, options?: TimingOptions): void;
|
61 | flush(): Promise<void>;
|
62 | }
|
63 | export declare class AnalyticsReporter {
|
64 | protected _analytics: Analytics;
|
65 | constructor(_analytics: Analytics);
|
66 | report(report: AnalyticsReport): void;
|
67 | }
|