import { Logger, MessageBus } from '@tangential/core'; import { FirebaseProvider } from '@tangential/firebase-util'; import { Observable } from 'rxjs'; import { AuthSubject } from '../../media-type/cdm/auth-subject'; import { AuthUserKey } from '../../media-type/doc-model/auth-user'; import { AuthenticationService } from '../authentication-service/authentication-service'; import { Visitor } from './media-type/cdm/visitor'; import { VisitorPreferences } from './media-type/cdm/visitor-preferences'; import { VisitorService } from './visitor-service'; import * as i0 from "@angular/core"; export declare class FirebaseVisitorService extends VisitorService { private bus; protected logger: Logger; private fb; private authService; /** * Waits for the first non-placeholder visitor (e.g. not the default value provided to the behaviour subject). * This is basically saying 'wait for the Firebase auth server to respond. * * Subsequent calls to this method will be provided the same observable instance as the initial call. The has the effect of * making the timeoutMils argument effective only on the initial call to this method for the current client session. * * The returned observable will never complete. * @param timeoutMils * @returns {Observable} */ private awaitVisitorObserver; private db; private visitorObserver; constructor(bus: MessageBus, logger: Logger, fb: FirebaseProvider, authService: AuthenticationService); getCurrentVisitor(subject: AuthSubject): Promise; getVisitorPreferences(key: AuthUserKey): Promise; visitor$(): Observable; awaitVisitor$(timeoutMils?: number): Observable; setVisitorPreferences(key: AuthUserKey, prefs: VisitorPreferences): Promise; updateVisitorPreferences(key: AuthUserKey, prefs: VisitorPreferences): Promise; private initSubscriptions; private doCatch; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }