import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { Logger, MessageBus } from '@tangential/core';
import { AppEnvironment } from '@tangential/core';
import * as i0 from "@angular/core";
export declare type HitType = 'pageview' | 'screenview' | 'event' | 'transaction' | 'item' | 'social' | 'exception' | 'timing';
export declare const HitTypes: {
    pageView: HitType;
    screenView: HitType;
    event: HitType;
    transaction: HitType;
    item: HitType;
    social: HitType;
    exception: HitType;
    timing: HitType;
};
export interface GoogleAnalyticsFields {
    hitType?: HitType;
    title?: string;
    page?: string;
    location?: string;
    eventCategory?: string;
    eventAction?: string;
    eventLabel?: string;
}
export declare type GaFunction = (action: string, fields?: GoogleAnalyticsFields | string, other?: string) => void;
export declare class GoogleAnalytics {
    private bus;
    protected logger: Logger;
    private env;
    private analytics;
    constructor(bus: MessageBus, logger: Logger, env: AppEnvironment);
    awaitGoogle(waitMils: number): Promise<GaFunction>;
    create(): void;
    navigatedToGeneric(state: RouterStateSnapshot, route: ActivatedRouteSnapshot): void;
    navigatedTo(state: RouterStateSnapshot, route: ActivatedRouteSnapshot, hit: GoogleAnalyticsFields): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<GoogleAnalytics, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<GoogleAnalytics>;
}
