import { InjectionToken, NgZone, Version } from '@angular/core';
import { analytics, app, auth, database, firestore, functions, messaging, performance, remoteConfig, storage } from 'firebase/app';
export interface FirebaseOptions {
    [key: string]: any;
}
export interface FirebaseAppConfig {
    [key: string]: any;
}
export declare const FIREBASE_OPTIONS: InjectionToken<FirebaseOptions>;
export declare const FIREBASE_APP_NAME: InjectionToken<string | FirebaseAppConfig>;
export declare class FirebaseApp implements Partial<app.App> {
    name: string;
    options: {};
    analytics: () => analytics.Analytics;
    auth: () => auth.Auth;
    database: (databaseURL?: string) => database.Database;
    messaging: () => messaging.Messaging;
    performance: () => performance.Performance;
    storage: (storageBucket?: string) => storage.Storage;
    delete: () => Promise<void>;
    firestore: () => firestore.Firestore;
    functions: (region?: string) => functions.Functions;
    remoteConfig: () => remoteConfig.RemoteConfig;
}
export declare const VERSION: Version;
export declare function ɵfirebaseAppFactory(options: FirebaseOptions, zone: NgZone, nameOrConfig?: string | FirebaseAppConfig | null): FirebaseApp;
export declare class AngularFireModule {
    static initializeApp(options: FirebaseOptions, nameOrConfig?: string | FirebaseAppConfig): {
        ngModule: typeof AngularFireModule;
        providers: {
            provide: InjectionToken<string | FirebaseAppConfig>;
            useValue: string | FirebaseAppConfig;
        }[];
    };
    constructor(platformId: Object);
}
