import { InjectionToken } from '@angular/core'; import { BrowserOptions } from '@sentry/browser'; import { PostHogConfig } from 'posthog-js'; export interface IFirebaseEmulatorConfig { authPort: number; authHost?: string; firestorePort: number; firestoreHost?: string; } export interface IFirebaseConfig { emulator?: IFirebaseEmulatorConfig; projectId: string; appId: string; measurementId?: string; messagingSenderId?: string; apiKey: string; authDomain?: string; databaseURL?: string; storageBucket?: string; } type OnlyValidKeys = T extends Shape ? Exclude extends never ? T : never : never; export interface IPosthogSettings { readonly token: string; readonly config?: OnlyValidKeys, Partial>; } export interface IGoogleAnalyticsSettings { readonly measurementId: string; } export interface IEnvironmentConfig { production: boolean; useNgrok?: boolean; posthog?: IPosthogSettings; googleAnalytics?: IGoogleAnalyticsSettings; sentry?: BrowserOptions; agents: Record; firebaseConfig: IFirebaseConfig; firebaseBaseUrl?: string; signInMethod?: 'popup' | 'redirect'; } export declare const FirebaseConfigToken: InjectionToken; export declare const EnvConfigToken: InjectionToken; export {};