@angular/fire
Version:
Angular + Firebase = ❤️
65 lines (60 loc) • 4.2 kB
TypeScript
import * as i0 from '@angular/core';
import { InjectionToken, NgZone } from '@angular/core';
import { ɵAngularFireSchedulers as _AngularFireSchedulers } from '@angular/fire';
import { ɵPromiseProxy as _PromiseProxy } from '@angular/fire/compat';
import { FirebaseOptions } from 'firebase/app';
import firebase from 'firebase/compat/app';
import { Observable, MonoTypeOperatorFunction, OperatorFunction } from 'rxjs';
type Settings = firebase.remoteConfig.Settings;
type ConfigTemplate = Record<string, string | number | boolean>;
declare const SETTINGS: InjectionToken<firebase.remoteConfig.Settings>;
declare const DEFAULTS: InjectionToken<ConfigTemplate>;
declare class Value implements firebase.remoteConfig.Value {
_source: firebase.remoteConfig.ValueSource;
_value: string;
asBoolean(): boolean;
asString(): string;
asNumber(): number;
getSource(): firebase.remoteConfig.ValueSource;
constructor(_source: firebase.remoteConfig.ValueSource, _value: string);
}
declare class Parameter extends Value {
key: string;
fetchTimeMillis: number;
constructor(key: string, fetchTimeMillis: number, source: firebase.remoteConfig.ValueSource, value: string);
}
declare const filterRemote: () => MonoTypeOperatorFunction<Parameter | Parameter[]>;
declare const filterFresh: (howRecentInMillis: number) => MonoTypeOperatorFunction<Parameter | Parameter[]>;
interface AngularFireRemoteConfig extends _PromiseProxy<firebase.remoteConfig.RemoteConfig> {
}
declare class AngularFireRemoteConfig {
private zone;
readonly changes: Observable<Parameter>;
readonly parameters: Observable<Parameter[]>;
readonly numbers: Observable<Record<string, number | undefined>> & Record<string, Observable<number>>;
readonly booleans: Observable<Record<string, boolean | undefined>> & Record<string, Observable<boolean>>;
readonly strings: Observable<Record<string, string | undefined>> & Record<string, Observable<string | undefined>>;
private readonly injector;
constructor(options: FirebaseOptions, name: string | null | undefined, settings: Settings | null, defaultConfig: ConfigTemplate | null, zone: NgZone, schedulers: _AngularFireSchedulers, platformId: Object);
static ɵfac: i0.ɵɵFactoryDeclaration<AngularFireRemoteConfig, [null, { optional: true; }, { optional: true; }, { optional: true; }, null, null, null]>;
static ɵprov: i0.ɵɵInjectableDeclaration<AngularFireRemoteConfig>;
}
declare const budget: <T>(interval: number) => MonoTypeOperatorFunction<T>;
declare function scanToObject(): OperatorFunction<Parameter, Record<string, string | undefined>>;
declare function scanToObject(to: 'numbers'): OperatorFunction<Parameter, Record<string, number | undefined>>;
declare function scanToObject(to: 'booleans'): OperatorFunction<Parameter, Record<string, boolean | undefined>>;
declare function scanToObject(to: 'strings'): OperatorFunction<Parameter, Record<string, string | undefined>>;
declare function scanToObject<T extends ConfigTemplate>(template: T): OperatorFunction<Parameter, T & Record<string, string | undefined>>;
declare function mapToObject(): OperatorFunction<Parameter[], Record<string, string | undefined>>;
declare function mapToObject(to: 'numbers'): OperatorFunction<Parameter[], Record<string, number | undefined>>;
declare function mapToObject(to: 'booleans'): OperatorFunction<Parameter[], Record<string, boolean | undefined>>;
declare function mapToObject(to: 'strings'): OperatorFunction<Parameter[], Record<string, string | undefined>>;
declare function mapToObject<T extends ConfigTemplate>(template: T): OperatorFunction<Parameter[], T & Record<string, string | undefined>>;
declare class AngularFireRemoteConfigModule {
constructor();
static ɵfac: i0.ɵɵFactoryDeclaration<AngularFireRemoteConfigModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<AngularFireRemoteConfigModule, never, never, never>;
static ɵinj: i0.ɵɵInjectorDeclaration<AngularFireRemoteConfigModule>;
}
export { AngularFireRemoteConfig, AngularFireRemoteConfigModule, DEFAULTS, Parameter, SETTINGS, Value, budget, filterFresh, filterRemote, mapToObject, scanToObject };
export type { ConfigTemplate };