import * as i0 from '@angular/core';
import { Version } from '@angular/core';
import { FirebaseApp } from 'firebase/app';
import { SchedulerLike, SchedulerAction, Subscription } from 'rxjs';

declare const VERSION: Version;
declare const ɵisSupportedError: (module: string) => string;
declare function ɵgetDefaultInstanceOf<T = unknown>(identifier: string, provided: T[] | undefined, defaultApp: FirebaseApp): T | undefined;
declare const ɵgetAllInstancesOf: <T = unknown>(identifier: string, app?: FirebaseApp) => T[];

declare enum LogLevel {
    "SILENT" = 0,
    "WARN" = 1,
    "VERBOSE" = 2
}
declare const setLogLevel: (logLevel: LogLevel) => LogLevel;
/**
 * Schedules tasks so that they are invoked inside the Zone that is passed in the constructor.
 */
declare class ɵZoneScheduler implements SchedulerLike {
    private zone;
    private delegate;
    constructor(zone: any, delegate?: any);
    now(): any;
    schedule(work: (this: SchedulerAction<any>, state?: any) => void, delay?: number, state?: any): Subscription;
}
declare class ɵAngularFireSchedulers {
    readonly outsideAngular: ɵZoneScheduler;
    readonly insideAngular: ɵZoneScheduler;
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<ɵAngularFireSchedulers, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ɵAngularFireSchedulers>;
}
declare const ɵzoneWrap: <T = unknown>(it: T, blockUntilFirst: boolean, logLevel?: LogLevel) => T;

export { LogLevel, VERSION, setLogLevel, ɵAngularFireSchedulers, ɵZoneScheduler, ɵgetAllInstancesOf, ɵgetDefaultInstanceOf, ɵisSupportedError, ɵzoneWrap };
