import * as rxjs from 'rxjs';
import { Observable } from 'rxjs';
import { Analytics as Analytics$1, getAnalytics as getAnalytics$1, getGoogleAnalyticsClientId as getGoogleAnalyticsClientId$1, initializeAnalytics as initializeAnalytics$1, isSupported as isSupported$1, logEvent as logEvent$1, setAnalyticsCollectionEnabled as setAnalyticsCollectionEnabled$1, setConsent as setConsent$1, setCurrentScreen as setCurrentScreen$1, setDefaultEventParameters as setDefaultEventParameters$1, setUserId as setUserId$1, setUserProperties as setUserProperties$1, settings as settings$1 } from 'firebase/analytics';
export * from 'firebase/analytics';
import * as i0 from '@angular/core';
import { OnDestroy, NgZone, Injector, ComponentFactoryResolver, EnvironmentProviders } from '@angular/core';
import { Title } from '@angular/platform-browser';
import { Router } from '@angular/router';
import { Auth } from '@angular/fire/auth';

interface Analytics extends Analytics$1 {
}
declare class Analytics {
    constructor(analytics: Analytics$1);
}
interface AnalyticsInstances extends Array<Analytics$1> {
}
declare class AnalyticsInstances {
    constructor();
}
declare const analyticInstance$: rxjs.Observable<Analytics$1>;

declare class UserTrackingService implements OnDestroy {
    readonly initialized: Promise<void>;
    private disposables;
    constructor(auth: Auth, zone: NgZone, injector: Injector);
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<UserTrackingService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<UserTrackingService>;
}

declare const FIREBASE_EVENT_ORIGIN_KEY = "firebase_event_origin";
declare const FIREBASE_PREVIOUS_SCREEN_CLASS_KEY = "firebase_previous_class";
declare const FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY = "firebase_previous_id";
declare const FIREBASE_PREVIOUS_SCREEN_NAME_KEY = "firebase_previous_screen";
declare const FIREBASE_SCREEN_CLASS_KEY = "firebase_screen_class";
declare const FIREBASE_SCREEN_INSTANCE_ID_KEY = "firebase_screen_id";
declare const FIREBASE_SCREEN_NAME_KEY = "firebase_screen";
declare const OUTLET_KEY = "outlet";
declare const PAGE_PATH_KEY = "page_path";
declare const PAGE_TITLE_KEY = "page_title";
declare const SCREEN_CLASS_KEY = "screen_class";
declare const SCREEN_NAME_KEY = "screen_name";
declare const ɵscreenViewEvent: (router: Router, title: Title | null, componentFactoryResolver: ComponentFactoryResolver) => Observable<{
    [SCREEN_NAME_KEY]: string;
    [PAGE_PATH_KEY]: string;
    [FIREBASE_EVENT_ORIGIN_KEY]: "auto";
    [FIREBASE_SCREEN_NAME_KEY]: string;
    [OUTLET_KEY]: string;
    [PAGE_TITLE_KEY]?: string;
    [SCREEN_CLASS_KEY]: string;
    [FIREBASE_SCREEN_CLASS_KEY]: string;
    [FIREBASE_SCREEN_INSTANCE_ID_KEY]: number;
    [FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: string;
    [FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: string;
    [FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: number;
}>;
declare class ScreenTrackingService implements OnDestroy {
    private disposable;
    constructor(router: Router, title: Title, componentFactoryResolver: ComponentFactoryResolver, zone: NgZone, userTrackingService: UserTrackingService, injector: Injector);
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ScreenTrackingService, [{ optional: true; }, { optional: true; }, null, null, { optional: true; }, null]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ScreenTrackingService>;
}

declare class AnalyticsModule {
    constructor(_screenTrackingService: ScreenTrackingService, _userTrackingService: UserTrackingService);
    static ɵfac: i0.ɵɵFactoryDeclaration<AnalyticsModule, [{ optional: true; }, { optional: true; }]>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AnalyticsModule, never, never, never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AnalyticsModule>;
}
declare function provideAnalytics(fn: (injector: Injector) => Analytics$1, ...deps: any[]): EnvironmentProviders;

declare const getAnalytics: typeof getAnalytics$1;
declare const getGoogleAnalyticsClientId: typeof getGoogleAnalyticsClientId$1;
declare const initializeAnalytics: typeof initializeAnalytics$1;
declare const isSupported: typeof isSupported$1;
declare const logEvent: typeof logEvent$1;
declare const setAnalyticsCollectionEnabled: typeof setAnalyticsCollectionEnabled$1;
declare const setConsent: typeof setConsent$1;
declare const setCurrentScreen: typeof setCurrentScreen$1;
declare const setDefaultEventParameters: typeof setDefaultEventParameters$1;
declare const setUserId: typeof setUserId$1;
declare const setUserProperties: typeof setUserProperties$1;
declare const settings: typeof settings$1;

export { Analytics, AnalyticsInstances, AnalyticsModule, ScreenTrackingService, UserTrackingService, analyticInstance$, getAnalytics, getGoogleAnalyticsClientId, initializeAnalytics, isSupported, logEvent, provideAnalytics, setAnalyticsCollectionEnabled, setConsent, setCurrentScreen, setDefaultEventParameters, setUserId, setUserProperties, settings, ɵscreenViewEvent };
