import { InjectionToken, NgZone } from '@angular/core';
import { Observable } from 'rxjs';
import { performance } from 'firebase/app';
import { FirebaseApp, ɵPromiseProxy } from '@angular/fire';
export declare const AUTOMATICALLY_TRACE_CORE_NG_METRICS: InjectionToken<boolean>;
export declare const INSTRUMENTATION_ENABLED: InjectionToken<boolean>;
export declare const DATA_COLLECTION_ENABLED: InjectionToken<boolean>;
export interface AngularFirePerformance extends ɵPromiseProxy<performance.Performance> {
}
export declare class AngularFirePerformance {
    private zone;
    private readonly performance;
    constructor(app: FirebaseApp, instrumentationEnabled: boolean | null, dataCollectionEnabled: boolean | null, zone: NgZone, platformId: Object);
}
export declare const traceUntil: <T = any>(name: string, test: (a: T) => boolean, options?: {
    orComplete?: boolean;
}) => (source$: Observable<T>) => Observable<T>;
export declare const traceWhile: <T = any>(name: string, test: (a: T) => boolean, options?: {
    orComplete?: boolean;
}) => (source$: Observable<T>) => Observable<T>;
export declare const traceUntilComplete: <T = any>(name: string) => (source$: Observable<T>) => Observable<T>;
export declare const traceUntilFirst: <T = any>(name: string) => (source$: Observable<T>) => Observable<T>;
export declare const trace: <T = any>(name: string) => (source$: Observable<T>) => Observable<T>;
