import { IFirebaseOptions, FirebaseConfig } from '.';
import { AndroidActivityEventData } from '@nativescript/core';
export * from './utils';
export declare class FirebaseError extends Error {
    _native: java.lang.Exception;
    static fromNative(native: java.lang.Exception, message?: string): FirebaseError;
    get native(): java.lang.Exception;
    intoNative(): java.lang.Exception;
}
export declare class FirebaseOptions implements IFirebaseOptions {
    _nativeApp: com.google.firebase.FirebaseApp;
    static fromNative(native: com.google.firebase.FirebaseApp): FirebaseOptions;
    get native(): com.google.firebase.FirebaseOptions;
    _apiKey: string;
    set apiKey(value: string);
    get apiKey(): string;
    _gcmSenderId: string;
    set gcmSenderId(value: string);
    get gcmSenderId(): string;
    _databaseURL: string;
    get databaseURL(): string;
    _googleAppId: string;
    set googleAppId(value: string);
    get googleAppId(): string;
    _projectId: string;
    set projectId(value: string);
    get projectId(): string;
    _storageBucket: string;
    set storageBucket(value: string);
    get storageBucket(): string;
    _trackingId: string;
    set trackingId(value: string);
    get trackingId(): string;
}
export declare class FirebaseApp {
    _native: com.google.firebase.FirebaseApp;
    _options: FirebaseOptions;
    static fromNative(app: com.google.firebase.FirebaseApp): FirebaseApp;
    get native(): com.google.firebase.FirebaseApp;
    get android(): com.google.firebase.FirebaseApp;
    get name(): string;
    get options(): FirebaseOptions;
    delete(): Promise<void>;
    get apps(): any[];
}
export declare class Firebase {
    static _onResumeQueue: any[];
    static addToResumeQueue(callback: () => void): void;
    static _activityResultContractsQueue: import("@nativescript/core").Observable;
    static registerActivityResultContracts(callback: (args: AndroidActivityEventData & {
        dispose: boolean;
    }) => void): void;
    static unregisterActivityResultContracts(callback: (args: AndroidActivityEventData & {
        dispose: boolean;
    }) => void): void;
    static _appDidLaunch: boolean;
    static _inForeground: boolean;
    static get inForeground(): boolean;
    constructor();
    app(name?: string): FirebaseApp;
    initializeApp(options?: FirebaseOptions, configOrName?: FirebaseConfig | string): Promise<unknown>;
    initializeAppWithPath(path: string, options?: FirebaseOptions, config?: FirebaseConfig): Promise<unknown>;
    admob(): any;
}
export declare function firebase(): Firebase;
