@dereekb/dbx-firebase 13.31.0 → 13.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,13 @@
1
1
  import { AnalyticsUserProperties, DbxAnalyticsUserSource, AnalyticsUser, DbxAnalyticsService } from '@dereekb/dbx-analytics';
2
2
  import * as _dereekb_util from '@dereekb/util';
3
- import { Maybe, ISO8601DateString, AuthRoleSet, AuthRoleClaimsService, AuthClaimsObject, PasswordString, AuthClaims, FactoryWithRequiredInput, Initialized, Destroyable, ArrayOrValue, LabelRef, ClassLikeType, PageNumber, GetterOrValue, IterableOrValue, SetIncludesMode, ModelKey, ClassType, MapFunction, PartialOnKeys, UnixDateTimeSecondsNumber, ContentTypeMimeType, Milliseconds, Seconds, DateOrUnixDateTimeSecondsNumber, PromiseOrValue, PercentDecimal, PercentNumber } from '@dereekb/util';
3
+ import { Maybe, ISO8601DateString, AuthRoleSet, AuthRoleClaimsService, AuthClaimsObject, PasswordString, AuthClaims, FactoryWithRequiredInput, Initialized, Destroyable, ArrayOrValue, LabelRef, ClassLikeType, PageNumber, GetterOrValue, IterableOrValue, SetIncludesMode, ModelKey, ClassType, MapFunction, PartialOnKeys, PromiseOrValue, Seconds, Minutes, UnixDateTimeSecondsNumber, ContentTypeMimeType, Milliseconds, DateOrUnixDateTimeSecondsNumber, PercentDecimal, PercentNumber } from '@dereekb/util';
4
4
  import * as _firebase_auth from '@firebase/auth';
5
5
  import { DbxAuthService, AuthUserState, AuthUserIdentifier, DbxAuthImpersonationDetails, NoAuthUserIdentifier, DbxInjectionContext, ClickableAnchor, AbstractForwardDbxInjectionContextDirective, DbxActionSuccessHandlerFunction, DbxInjectionComponentConfig, DbxAuthImpersonationDelegate, ProvideDbxAuthImpersonationConfig, ClickableUrl, IconAndTitle, SegueRef, ClickableAnchorLinkSegueRef, LockSetComponent, DbxButtonDisplay, DbxRouteModelIdDirectiveDelegate, DbxRouteModelKeyDirectiveDelegate, LockSetComponentStore, AbstractIfDirective, StorageAccessor, DbxActionContextStoreSourceInstance, DbxActionHandlerInstance, DbxButton, SimpleStorageAccessorFactory, DbxRouteParamReader, DbxRouterService } from '@dereekb/dbx-core';
6
6
  import { UserInfo, User, IdTokenResult, ParsedToken, AuthProvider, PopupRedirectResolver, UserCredential, AuthCredential, Auth } from 'firebase/auth';
7
7
  import * as rxjs from 'rxjs';
8
8
  import { Observable, BehaviorSubject, Subject, OperatorFunction, Subscription } from 'rxjs';
9
9
  import * as _dereekb_firebase from '@dereekb/firebase';
10
- import { FirebaseAuthToken, FirebaseAuthOobCode, FirebaseAuthIdToken, FirebaseAuthContextInfo, FirebaseDevelopmentFunctions, ScheduledFunctionDevelopmentFirebaseFunctionListEntry, FirestoreContext, FirestoreContextCacheFactory, NotificationFirestoreCollections, StorageFileFirestoreCollections, SystemStateFirestoreCollections, FirebaseFunctionsMap, FirebaseFunctionsConfigMap, FirestoreQueryConstraint, FirestoreItemPageIterationInstance, DocumentDataWithIdAndKey, IterationQueryDocChangeWatcher, FirebaseQuerySnapshotAccumulator, FirebaseQueryItemAccumulator, FirebaseQueryItemAccumulatorNextPageUntilResultsCountFunction, IterationQueryDocChangeWatcherEvent, FirestoreDocument, FirestoreCollectionLike, FirestoreModelKey, DocumentReference, FirestoreItemPageIteratorFilter, FirestoreModelId, DocumentSnapshot, FirestoreDocumentAccessor, LimitedFirestoreDocumentAccessor, FirestoreModelType, FirestoreDocumentData, FirestoreAccessorStreamMode, SnapshotOptions, FirebasePermissionErrorContext, InModelContextFirebaseModelService, InContextFirebaseModelsService, FirebaseModelsService, FirestoreModelIdentityTypeMap, FirestoreModelIdentity, FirestoreCollectionType, FirestoreCollection, FlatFirestoreModelKey, TwoWayFlatFirestoreModelKey, FirestoreModelCollectionAndIdPair, FirestoreModelCollectionAndIdPairObject, IterationQueryDocChangeWatcherChangeType, OnCallCreateModelResult, ModelFirebaseCreateFunction, ModelFirebaseCrudFunction, TargetModelParams, InferredTargetModelParams, ModelFirebaseDeleteFunction, ModelFirebaseInvokeFunction, ModelFirebaseReadFunction, ModelFirebaseUpdateFunction, FirestoreCollectionWithParentFactory, FirestoreCollectionGroup, SystemState, SystemStateDocument, SystemStateStoredData, SystemStateTypeIdentifier, AppNotificationTemplateTypeInfoRecordService, NotificationItemMetadata, NotificationItem, NotificationItemSubjectMessagePair, NotificationId, Notification, NotificationBox, NotificationDocument, NotificationBoxDocument, NotificationFunctions, NotificationSummary, NotificationSummaryDocument, UnreadNotificationItemsResult, NotificationUser, NotificationUserDocument, NotificationTemplateType, NotificationTemplateTypeInfo, FirebaseAuthUserId, StorageFileId, StorageFileSignedDownloadUrl, FirestoreModelIdInput, StorageFileFunctions, StorageFileKey, DownloadStorageFileParams, DownloadStorageFileResult, StorageFileDownloadUrl, StoragePathInput, FirebaseStorageAccessorFile, StorageFile, StorageFileDocument, StorageFileGroup, StorageFileGroupDocument, FirebaseStorageAccessor, FirebaseStorageContext, FirebaseStorageAccessorFolder, StorageUploadTask, StorageUploadOptions, StorageCustomMetadata, FirebaseStorageContextFactoryConfig } from '@dereekb/firebase';
10
+ import { FirebaseAuthToken, FirebaseAuthOobCode, FirebaseAuthIdToken, FirebaseAuthContextInfo, FirebaseDevelopmentFunctions, ScheduledFunctionDevelopmentFirebaseFunctionListEntry, FirestoreContext, FirestoreContextCacheFactory, NotificationFirestoreCollections, StorageFileFirestoreCollections, SystemStateFirestoreCollections, FirebaseFunctionsMap, FirebaseFunctionsConfigMap, FirestoreQueryConstraint, FirestoreItemPageIterationInstance, DocumentDataWithIdAndKey, IterationQueryDocChangeWatcher, FirebaseQuerySnapshotAccumulator, FirebaseQueryItemAccumulator, FirebaseQueryItemAccumulatorNextPageUntilResultsCountFunction, IterationQueryDocChangeWatcherEvent, FirestoreDocument, FirestoreCollectionLike, FirestoreModelKey, DocumentReference, FirestoreItemPageIteratorFilter, FirestoreModelId, DocumentSnapshot, FirestoreDocumentAccessor, LimitedFirestoreDocumentAccessor, FirestoreModelType, FirestoreDocumentData, FirestoreAccessorStreamMode, SnapshotOptions, FirebasePermissionErrorContext, InModelContextFirebaseModelService, InContextFirebaseModelsService, FirebaseModelsService, FirestoreModelIdentityTypeMap, FirestoreModelIdentity, FirestoreCollectionType, FirestoreCollection, FlatFirestoreModelKey, TwoWayFlatFirestoreModelKey, FirestoreModelCollectionAndIdPair, FirestoreModelCollectionAndIdPairObject, IterationQueryDocChangeWatcherChangeType, OnCallCreateModelResult, ModelFirebaseCreateFunction, ModelFirebaseCrudFunction, TargetModelParams, InferredTargetModelParams, ModelFirebaseDeleteFunction, ModelFirebaseInvokeFunction, ModelFirebaseReadFunction, ModelFirebaseUpdateFunction, FirestoreCollectionWithParentFactory, FirestoreCollectionGroup, SystemState, SystemStateDocument, SystemStateStoredData, SystemStateTypeIdentifier, UserExternalConnectionProviderType, UserExternalConnectionEntry, KnownUserExternalConnectionProviderType, UserExternalConnectionEntryMap, UserExternalConnection, UserExternalConnectionDocument, UserExternalConnectionFunctions, UserExternalConnectionFirestoreCollections, UserExternalConnectionFirestoreCollection, NotificationDeliveryHealthCheckResult, NotificationHealthCheck, NotificationDeliveryMethod, NotificationDeliveryMethodMap, NotificationHealthCheckIssue, AppNotificationTemplateTypeInfoRecordService, NotificationItemMetadata, NotificationItem, NotificationItemSubjectMessagePair, NotificationUser, NotificationUserDocument, NotificationFunctions, NotificationUserHealthCheckResult, NotificationUserHealthCheckParams, NotificationId, Notification, NotificationBox, NotificationDocument, NotificationBoxDocument, NotificationSummary, NotificationSummaryDocument, UnreadNotificationItemsResult, NotificationHealthCheckIssueCode, NotificationHealthCheckStatus, NotificationTemplateType, NotificationTemplateTypeInfo, FirebaseAuthUserId, StorageFileId, StorageFileSignedDownloadUrl, FirestoreModelIdInput, StorageFileFunctions, StorageFileKey, DownloadStorageFileParams, DownloadStorageFileResult, StorageFileDownloadUrl, StoragePathInput, FirebaseStorageAccessorFile, StorageFile, StorageFileDocument, StorageFileGroup, StorageFileGroupDocument, FirebaseStorageAccessor, FirebaseStorageContext, FirebaseStorageAccessorFolder, StorageUploadTask, StorageUploadOptions, StorageCustomMetadata, FirebaseStorageContextFactoryConfig } from '@dereekb/firebase';
11
11
  import * as i0 from '@angular/core';
12
12
  import { InjectionToken, EnvironmentProviders, Type, OnInit, Component, EventEmitter, Injector, AfterViewInit, ElementRef, Signal, Provider, PipeTransform } from '@angular/core';
13
13
  import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
@@ -18,7 +18,7 @@ import * as _dereekb_rxjs from '@dereekb/rxjs';
18
18
  import { WorkUsingContext, WorkUsingObservable, ObservableOrValue, IsModifiedFunction, PageListLoadingState, ItemAccumulatorNextPageUntilResultsCountResult, SubscriptionObject, ObservableDecisionFunction, ListLoadingState, LoadingState, MaybeObservableOrValue, SwitchMapToDefaultFilterFunction, MaybeObservableOrValueGetter } from '@dereekb/rxjs';
19
19
  import * as dist_packages_dbx_form_types_dereekb_dbx_form from 'dist/packages/dbx-form/types/dereekb-dbx-form';
20
20
  import * as i1 from '@dereekb/dbx-web';
21
- import { DbxColorInput, DbxActionConfirmConfig, DbxWidgetEntry, DbxPopupService, DbxWidgetService, DbxWidgetType, TwoColumnsContextStore, AbstractPopupDirective, DbxPopupKey, AbstractDbxSelectionListWrapperDirective, AbstractDbxSelectionListViewDirective, DbxSelectionValueListViewConfig, DbxValueAsListItem, AbstractDbxValueListViewItemComponent, DbxModelTypesService, DbxModelTypeInfo, DbxModelTypesMap, DbxModelTrackerService, AnchorForValueFunction, AbstractPopoverDirective, DbxPopoverService, DbxPopoverKey, AbstractPopoverRefDirective, DbxPopoverConfigSizing, DbxButtonStyle, DownloadTextContent, DbxModelObjectStateService, DbxListViewWrapper, DbxWidgetViewComponentConfig, AbstractDbxWidgetComponent, DbxWebFilePreviewService, DbxActionDialogFunction, FileAcceptFilterTypeString, DbxImageCompressionConfig, ImageBitmapToBlobEncoder, CompressImageFileResult, DbxFileUploadComponent, DbxPdfMergeEditorStore, DbxActionModule, DbxLoadingComponent, DbxActionSnackbarErrorDirective, DbxActionLoadingContextDirective, DbxFileUploadActionSyncDirective } from '@dereekb/dbx-web';
21
+ import { DbxColorInput, DbxActionConfirmConfig, DbxWidgetEntry, DbxPopupService, DbxWidgetService, DbxWidgetType, TwoColumnsContextStore, AbstractPopupDirective, DbxPopupKey, AbstractDbxSelectionListWrapperDirective, AbstractDbxSelectionListViewDirective, DbxSelectionValueListViewConfig, DbxValueAsListItem, AbstractDbxValueListViewItemComponent, DbxModelTypesService, DbxModelTypeInfo, DbxModelTypesMap, DbxModelTrackerService, AnchorForValueFunction, AbstractPopoverDirective, DbxPopoverService, DbxPopoverKey, AbstractPopoverRefDirective, DbxPopoverConfigSizing, DbxButtonStyle, DownloadTextContent, DbxModelObjectStateService, DbxListViewWrapper, AbstractDbxListWrapperDirective, AbstractDbxListViewDirective, DbxValueListViewConfig, DbxThemeColor, DbxWidgetViewComponentConfig, AbstractDbxWidgetComponent, AbstractDialogDirective, DbxWebFilePreviewService, DbxActionDialogFunction, FileAcceptFilterTypeString, DbxImageCompressionConfig, ImageBitmapToBlobEncoder, CompressImageFileResult, DbxFileUploadComponent, DbxPdfMergeEditorStore, DbxActionModule, DbxLoadingComponent, DbxActionSnackbarErrorDirective, DbxActionLoadingContextDirective, DbxFileUploadActionSyncDirective } from '@dereekb/dbx-web';
22
22
  import { FormConfig } from '@ng-forge/dynamic-forms';
23
23
  import { MatSnackBar } from '@angular/material/snack-bar';
24
24
  import { NgPopoverRef } from 'ng-overlay-container';
@@ -252,14 +252,41 @@ declare class DbxFirebaseAuthService implements DbxAuthService {
252
252
  * Alias for uid$
253
253
  */
254
254
  readonly userIdentifier$: Observable<AuthUserIdentifier | NoAuthUserIdentifier>;
255
+ /**
256
+ * The current ID token string, or null while logged out.
257
+ *
258
+ * Scoped per-uid via {@link sharedObservableForUidFunction} so the replay buffer can never hand a subscriber
259
+ * the PREVIOUS user's token after a same-page re-login.
260
+ */
255
261
  readonly currentIdTokenString$: Observable<Maybe<FirebaseAuthIdToken>>;
256
262
  readonly idTokenString$: Observable<FirebaseAuthIdToken>;
263
+ /**
264
+ * The current user's decoded ID token, or null while logged out.
265
+ *
266
+ * Scoped per-uid via {@link sharedObservableForUidFunction}. Token refreshes still flow through, as they arrive
267
+ * on {@link currentIdTokenString$}; only a uid change rebuilds the stream.
268
+ */
257
269
  readonly currentIdTokenResult$: Observable<Maybe<IdTokenResult>>;
258
270
  readonly idTokenResult$: Observable<IdTokenResult>;
271
+ /**
272
+ * The current user's token claims, or null while logged out.
273
+ *
274
+ * Intentionally not replayed: {@link currentIdTokenResult$} is already shared per-uid, and a buffer here would
275
+ * reintroduce the cross-user staleness that scoping removes.
276
+ */
259
277
  readonly currentClaims$: Observable<Maybe<ParsedToken>>;
260
278
  readonly claims$: Observable<ParsedToken>;
261
279
  readonly currentAuthContextInfo$: Observable<Maybe<DbxFirebaseAuthContextInfo>>;
262
280
  readonly authContextInfo$: Observable<Maybe<DbxFirebaseAuthContextInfo>>;
281
+ /**
282
+ * The current {@link AuthUserState}.
283
+ *
284
+ * The delegate's state stream is scoped per-uid via {@link sharedObservableForUidFunction}, so it is rebuilt
285
+ * whenever the signed-in uid changes. Without that, a subscriber attaching right after a same-page re-login is
286
+ * served the prior session's state synchronously from the replay buffer — and every consumer that reads the
287
+ * first emission, including the UIRouter auth transition hooks, then routes on it. The delegate factory is
288
+ * re-invoked per uid so the delegate's own internal replay is discarded along with it.
289
+ */
263
290
  readonly authUserState$: Observable<AuthUserState>;
264
291
  readonly authRoles$: Observable<AuthRoleSet>;
265
292
  readonly isOnboarded$: Observable<boolean>;
@@ -4352,236 +4379,1466 @@ declare class DbxFirebaseModelModule {
4352
4379
  }
4353
4380
 
4354
4381
  /**
4355
- * Client-side service used for retrieving notification templates.
4382
+ * Assets used to render a third-party connection row.
4383
+ *
4384
+ * Mapped from `DbxFirebaseAuthLoginProviderAssets`, with two deliberate differences:
4385
+ * - `providerName` is REQUIRED. An unnamed connection row is not renderable, which is what forces
4386
+ * the login registry into its `'<linkText not configured>'` placeholders.
4387
+ * - The full-bleed brand color fields are dropped. A brand-colored button is a sign-in affordance;
4388
+ * a settings row uses a normal themed button and carries the brand in its logo tile.
4356
4389
  */
4357
- declare class DbxFirebaseNotificationTemplateService {
4358
- readonly appNotificationTemplateTypeInfoRecordService: AppNotificationTemplateTypeInfoRecordService;
4359
- notificationItemSubjectMessagePairForNotificationSummaryItem<D extends NotificationItemMetadata = {}>(item: NotificationItem<D>): NotificationItemSubjectMessagePair<D>;
4360
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationTemplateService, never>;
4361
- static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirebaseNotificationTemplateService>;
4390
+ interface DbxFirebaseExternalConnectionProviderAssets {
4391
+ /**
4392
+ * Display name of the provider (e.g. "Cal.com", "Zoom").
4393
+ */
4394
+ readonly providerName: string;
4395
+ /**
4396
+ * URL of the logo to use.
4397
+ */
4398
+ readonly logoUrl?: Maybe<string>;
4399
+ /**
4400
+ * Material icon to use in place of the logo.
4401
+ */
4402
+ readonly icon?: Maybe<string>;
4403
+ /**
4404
+ * Short description of what connecting this provider enables.
4405
+ */
4406
+ readonly description?: Maybe<string>;
4407
+ /**
4408
+ * Text for the connect action. Defaults to "Connect".
4409
+ */
4410
+ readonly connectText?: Maybe<string>;
4411
+ /**
4412
+ * Text for the disconnect action. Defaults to "Disconnect".
4413
+ */
4414
+ readonly disconnectText?: Maybe<string>;
4415
+ /**
4416
+ * Optional CSS filter to apply to the logo image (e.g. 'brightness(0) invert(1)').
4417
+ */
4418
+ readonly logoFilter?: Maybe<string>;
4362
4419
  }
4363
-
4364
4420
  /**
4365
- * A notification item wrapped with list selection state.
4421
+ * Navigates the browser to the given url. Exists as a seam so tests (and apps that route through
4422
+ * their own navigation service) never need to touch `window.location`.
4423
+ *
4424
+ * Returns a promise that settles on the outcome of the navigation, NOT on the request to navigate
4425
+ * having been made: it resolves once the new page is actually opening, and rejects when it never
4426
+ * does. Callers must await it — that is what keeps the connect action working until the authorize
4427
+ * page is really on its way, instead of reporting success against a page that has not moved.
4366
4428
  */
4367
- type NotificationItemWithSelection = DbxValueAsListItem<NotificationItem>;
4429
+ type DbxFirebaseExternalConnectionNavigateFunction = (url: string) => PromiseOrValue<void>;
4368
4430
  /**
4369
- * Selection list wrapper for notification items with view-only default selection mode.
4431
+ * The opaque, short-lived `state` a provider's OAuth handoff carries.
4432
+ *
4433
+ * It is what tells the server who is connecting, since the top-level navigation to the provider
4434
+ * carries no Firebase ID token of its own.
4370
4435
  */
4371
- declare class DbxFirebaseNotificationItemListComponent extends AbstractDbxSelectionListWrapperDirective<NotificationItem> {
4372
- constructor();
4373
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemListComponent, never>;
4374
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemListComponent, "dbx-firebase-notificationitem-list", never, {}, {}, never, ["[top]", "[bottom]", "[empty]", "[emptyLoading]", "[end]"], true, never>;
4375
- }
4436
+ type DbxFirebaseExternalConnectionAuthorizeState = string;
4376
4437
  /**
4377
- * List view component that renders notification items using the selection list pattern.
4438
+ * Mints a fresh {@link DbxFirebaseExternalConnectionAuthorizeState} for a provider.
4378
4439
  */
4379
- declare class DbxFirebaseNotificationItemListViewComponent extends AbstractDbxSelectionListViewDirective<NotificationItem> {
4380
- readonly config: DbxSelectionValueListViewConfig<NotificationItemWithSelection>;
4381
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemListViewComponent, never>;
4382
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemListViewComponent, "dbx-firebase-notificationitem-list-view", never, {}, {}, never, never, true, never>;
4383
- }
4440
+ type DbxFirebaseExternalConnectionMintAuthorizeStateFunction = () => Promise<DbxFirebaseExternalConnectionAuthorizeState>;
4384
4441
  /**
4385
- * Individual list view item component rendering a notification's subject, message, and date.
4442
+ * Context handed to a provider's custom {@link DbxFirebaseExternalConnectionConnectFunction}.
4386
4443
  */
4387
- declare class DbxFirebaseNotificationItemListViewItemComponent extends AbstractDbxValueListViewItemComponent<NotificationItem> {
4388
- readonly dbxFirebaseNotificationTemplateService: DbxFirebaseNotificationTemplateService;
4389
- readonly pairGetter: _dereekb_util.CachedFactoryWithInput<_dereekb_firebase.NotificationItemSubjectMessagePair<{}>, unknown>;
4390
- get subject(): string;
4391
- get message(): string;
4392
- get date(): Date;
4393
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemListViewItemComponent, never>;
4394
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemListViewItemComponent, "ng-component", never, {}, {}, never, never, true, never>;
4444
+ interface DbxFirebaseExternalConnectionConnectContext {
4445
+ readonly providerType: UserExternalConnectionProviderType;
4446
+ readonly provider: DbxFirebaseExternalConnectionProvider;
4447
+ /**
4448
+ * The authorize url the default behavior would have navigated to, when one could be resolved.
4449
+ *
4450
+ * WITHOUT the `state` query parameter — the default behavior appends that itself, from
4451
+ * {@link mintAuthorizeState}, so a custom handler that skips the mint never pays for one.
4452
+ */
4453
+ readonly authorizeUrl: Maybe<string>;
4454
+ /**
4455
+ * Mints the state the authorize request must carry, via an authenticated call.
4456
+ *
4457
+ * Only needed by a handler that builds its own authorize request; the default behavior does this on
4458
+ * its own. Available regardless of the config's `mintAuthorizeState`, since a handler that asks for
4459
+ * a state wants one; it throws only when the app never wired the userExternalConnection callables.
4460
+ */
4461
+ readonly mintAuthorizeState: DbxFirebaseExternalConnectionMintAuthorizeStateFunction;
4462
+ /**
4463
+ * Navigates the browser. Use this rather than `window.location` directly, and AWAIT it: it settles
4464
+ * on the new page actually opening, which is what holds the connect action in its working state
4465
+ * until then.
4466
+ */
4467
+ readonly navigate: DbxFirebaseExternalConnectionNavigateFunction;
4395
4468
  }
4396
-
4397
4469
  /**
4398
- * Presentational component for notification item content, displaying subject, message, and date.
4470
+ * Starts the connect flow for a provider.
4471
+ *
4472
+ * The library default already mints the signed `state` and redirects to the authorize url carrying
4473
+ * it, which is the whole of what an authorization-code handoff needs. An app supplies this only when
4474
+ * the flow itself differs — opening a popup instead of navigating, say. Whatever it does, do NOT
4475
+ * append the Firebase ID token to the redirect: the state is what identifies the caller.
4476
+ *
4477
+ * The returned promise must not resolve before the authorize page is opening, so await the context's
4478
+ * `navigate` rather than calling it and returning.
4399
4479
  */
4400
- declare class DbxFirebaseNotificationItemContentComponent {
4401
- readonly subject: i0.InputSignal<Maybe<string>>;
4402
- readonly message: i0.InputSignal<Maybe<string>>;
4403
- readonly date: i0.InputSignal<Maybe<Date>>;
4404
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemContentComponent, never>;
4405
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemContentComponent, "dbx-firebase-notificationitem-content", never, { "subject": { "alias": "subject"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; }, {}, never, ["[header]", "[premessage]", "*"], true, never>;
4406
- }
4407
-
4480
+ type DbxFirebaseExternalConnectionConnectFunction = (context: DbxFirebaseExternalConnectionConnectContext) => Promise<void> | void;
4408
4481
  /**
4409
- * Renders a notification item using the widget system, resolving the appropriate
4410
- * display component based on the notification's template type.
4482
+ * Registration for one third-party service a user can connect their account to.
4483
+ *
4484
+ * Mapped from `DbxFirebaseAuthLoginProvider`: `loginMethodType` becomes `providerType` and `assets`
4485
+ * carries over. `componentClass` / `registrationComponentClass` / `category` / `allowLinking` /
4486
+ * `componentData` are dropped — login needs a component per provider because each calls a different
4487
+ * Firebase SDK class, whereas here the only per-provider variation is a URL, which is data.
4411
4488
  */
4412
- declare class DbxFirebaseNotificationItemViewComponent<D extends NotificationItemMetadata = {}> {
4413
- readonly item: i0.InputSignal<Maybe<NotificationItem<D>>>;
4414
- readonly configSignal: i0.Signal<DbxWidgetViewComponentConfig<unknown> | undefined>;
4415
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemViewComponent<any>, never>;
4416
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemViewComponent<any>, "dbx-firebase-notificationitem-view", never, { "item": { "alias": "item"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4489
+ interface DbxFirebaseExternalConnectionProvider {
4490
+ /**
4491
+ * Provider type key. MUST match the string the server writes into the connection entry map.
4492
+ */
4493
+ readonly providerType: UserExternalConnectionProviderType;
4494
+ /**
4495
+ * Assets for rendering this provider's row.
4496
+ */
4497
+ readonly assets: DbxFirebaseExternalConnectionProviderAssets;
4498
+ /**
4499
+ * Path appended to the configured authorize origin to start this provider's OAuth flow.
4500
+ *
4501
+ * Defaults to the config's `authorizePathFactory` result.
4502
+ */
4503
+ readonly authorizePath?: Maybe<string>;
4504
+ /**
4505
+ * Overrides the default redirect-based connect behavior.
4506
+ */
4507
+ readonly connect?: Maybe<DbxFirebaseExternalConnectionConnectFunction>;
4508
+ /**
4509
+ * Confirmation shown before disconnecting.
4510
+ */
4511
+ readonly disconnectConfirm?: Maybe<DbxActionConfirmConfig>;
4417
4512
  }
4418
-
4419
4513
  /**
4420
- * Abstract base directive for notification item widget display components.
4514
+ * One provider an app offers, as declared in its configuration.
4421
4515
  *
4422
- * Provides typed access to the {@link NotificationItem} data for custom rendering.
4516
+ * A KNOWN provider type is the whole entry: the library already carries its presentation, so flagging
4517
+ * a service on is naming it. Every app that connects to Discord shows the same Discord row, and the
4518
+ * asset copy is not what varies between downstream apps — the server's OAuth controller is.
4519
+ *
4520
+ * Pass a full provider to register a service the library has no defaults for, or
4521
+ * {@link dbxFirebaseKnownExternalConnectionProvider} to start from a known one and patch it.
4423
4522
  */
4424
- declare abstract class AbstractDbxFirebaseNotificationItemWidgetComponent<D extends NotificationItemMetadata = {}> extends AbstractDbxWidgetComponent<NotificationItem<D>> {
4425
- get notificationItem(): NotificationItem<D>;
4426
- static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDbxFirebaseNotificationItemWidgetComponent<any>, never>;
4427
- static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractDbxFirebaseNotificationItemWidgetComponent<any>, never, never, {}, {}, never, never, true, never>;
4428
- }
4429
-
4523
+ type DbxFirebaseExternalConnectionProviderEntry = KnownUserExternalConnectionProviderType | DbxFirebaseExternalConnectionProvider;
4430
4524
  /**
4431
- * Default notification item view component that renders subject, message, and creation date.
4525
+ * Configuration for the external connection registry.
4526
+ *
4527
+ * Declared as an abstract class so it is its own injection token (the newer style, as
4528
+ * `DbxFirebaseOidcConfig`). Unlike login there is no library-supplied default catalog for an
4529
+ * `InjectionToken`-with-`useFactory` shape to override, and the registry needs more than a list.
4432
4530
  */
4433
- declare class DbxFirebaseNotificationItemDefaultViewComponent extends AbstractDbxFirebaseNotificationItemWidgetComponent {
4434
- get subject(): _dereekb_util.Maybe<string>;
4435
- get message(): _dereekb_util.Maybe<string>;
4436
- get date(): Date;
4437
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemDefaultViewComponent, never>;
4438
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemDefaultViewComponent, "dbx-firebase-notificationitem-view-default", never, {}, {}, never, never, true, never>;
4439
- }
4440
-
4441
- interface DbxFirebaseNotificationItemStorePopoverParams {
4531
+ declare abstract class DbxFirebaseExternalConnectionsConfig {
4442
4532
  /**
4443
- * Custom icon
4444
- *
4445
- * Defaults to "history"
4533
+ * The providers the app registers, as known provider types and/or fully-declared providers.
4446
4534
  */
4447
- readonly icon?: string;
4535
+ abstract readonly providers: DbxFirebaseExternalConnectionProviderEntry[];
4448
4536
  /**
4449
- * Custom header text
4450
- *
4451
- * Defaults to "History"
4537
+ * Which providers are enabled. Pass `true` (the default) to enable every registered provider.
4452
4538
  */
4453
- readonly header?: string;
4539
+ readonly enabledProviders?: Maybe<UserExternalConnectionProviderType[] | true>;
4454
4540
  /**
4455
- * Custom empty text when no items exist.
4541
+ * Whether the connect flow mints a signed `state` and carries it on the authorize request.
4542
+ * Defaults to true.
4543
+ *
4544
+ * This is what identifies the connecting user to the server, since a top-level navigation carries
4545
+ * no Firebase ID token: the app's own authorize endpoint bounces a stateless request straight to
4546
+ * the failure url. Turn it off only for an endpoint that mints its own state, and note that doing
4547
+ * so means no authenticated call is made before the redirect.
4456
4548
  */
4457
- readonly emptyText?: string;
4549
+ readonly mintAuthorizeState?: Maybe<boolean>;
4458
4550
  /**
4459
- * Origin to add the popover to.
4551
+ * Origin the authorize paths are resolved against (e.g. the hosting origin that fronts the API).
4552
+ *
4553
+ * When undefined the authorize path is used as-is, which is the correct behavior when the app and
4554
+ * the OAuth controller share an origin.
4460
4555
  */
4461
- readonly origin: ElementRef;
4556
+ readonly authorizeOrigin?: Maybe<string>;
4462
4557
  /**
4463
- * Items loading state.
4558
+ * Builds the default authorize path for a provider that does not declare its own.
4559
+ *
4560
+ * Defaults to {@link DEFAULT_EXTERNAL_CONNECTION_AUTHORIZE_PATH_FACTORY}.
4464
4561
  */
4465
- readonly notificationItemsLoadingState$: Observable<LoadingState<NotificationItem[]>>;
4562
+ readonly authorizePathFactory?: Maybe<(providerType: UserExternalConnectionProviderType) => string>;
4466
4563
  /**
4467
- * Anchor
4564
+ * Navigation seam used by the default connect behavior.
4565
+ *
4566
+ * Defaults to {@link DEFAULT_EXTERNAL_CONNECTION_NAVIGATE_FUNCTION}. An override owns the same
4567
+ * contract: settle only once the new page is actually opening.
4468
4568
  */
4469
- readonly makeNotificationItemAnchor?: Maybe<AnchorForValueFunction<NotificationItem>>;
4470
- }
4471
- declare const DEFAULT_DBX_FIREBASE_NOTIFICATION_ITEM_STORE_POPOVER_KEY = "notification-item-store-notifications";
4472
- declare class DbxFirebaseNotificationItemStorePopoverComponent extends AbstractPopoverDirective<unknown, DbxFirebaseNotificationItemStorePopoverParams> {
4473
- static openPopover(popupService: DbxPopoverService, { origin, header, icon, emptyText, makeNotificationItemAnchor, notificationItemsLoadingState$ }: DbxFirebaseNotificationItemStorePopoverParams, popoverKey?: DbxPopoverKey): NgPopoverRef;
4474
- readonly params: DbxFirebaseNotificationItemStorePopoverParams;
4475
- readonly icon: string;
4476
- readonly header: string;
4477
- readonly emptyText: string;
4478
- readonly makeNotificationItemAnchor: Maybe<AnchorForValueFunction<NotificationItem<{}>>>;
4479
- readonly notificationItemsLoadingState$: Observable<LoadingState<NotificationItem<{}>[]>>;
4480
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemStorePopoverComponent, never>;
4481
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemStorePopoverComponent, "ng-component", never, {}, {}, never, never, true, never>;
4482
- }
4483
-
4484
- type DbxFirebaseNotificationItemStorePopoverButtonConfig = DbxFirebaseNotificationItemStorePopoverParams;
4485
- declare class DbxFirebaseNotificationItemStorePopoverButtonComponent extends AbstractPopoverRefDirective<unknown, unknown> {
4486
- private readonly _dbxPopoverService;
4487
- private readonly _dbxFirebaseNotificationItemStore;
4488
- readonly buttonElement: i0.Signal<Maybe<ElementRef<any>>>;
4489
- readonly config: i0.InputSignal<Maybe<Partial<DbxFirebaseNotificationItemStorePopoverParams>>>;
4490
- showNotificationsPopover(): void;
4491
- protected _makePopoverRef(origin?: ElementRef): NgPopoverRef<unknown, unknown>;
4492
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemStorePopoverButtonComponent, never>;
4493
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemStorePopoverButtonComponent, "dbx-firebase-notification-item-store-popover-button", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4569
+ readonly navigate?: Maybe<DbxFirebaseExternalConnectionNavigateFunction>;
4494
4570
  }
4495
-
4496
- interface DbxFirebaseNotificationItemStoreState {
4571
+ /**
4572
+ * Default authorize path for a provider: `/oauth/<providerType>/authorize`.
4573
+ *
4574
+ * @param providerType - The provider to build a path for.
4575
+ * @returns The authorize path.
4576
+ */
4577
+ declare const DEFAULT_EXTERNAL_CONNECTION_AUTHORIZE_PATH_FACTORY: (providerType: UserExternalConnectionProviderType) => string;
4578
+ /**
4579
+ * Presentation status of a connection row.
4580
+ */
4581
+ type DbxFirebaseExternalConnectionRowStatus = 'loading' | 'connected' | 'notConnected' | 'error';
4582
+ /**
4583
+ * One provider's row, as rendered on the settings page.
4584
+ */
4585
+ interface DbxFirebaseExternalConnectionRow {
4586
+ readonly providerType: UserExternalConnectionProviderType;
4587
+ readonly assets: DbxFirebaseExternalConnectionProviderAssets;
4497
4588
  /**
4498
- * The NotificationSummary to pull items from
4589
+ * The user's entry for this provider, when there is one.
4499
4590
  */
4500
- readonly items: NotificationItem[];
4591
+ readonly entry?: Maybe<UserExternalConnectionEntry>;
4592
+ readonly status: DbxFirebaseExternalConnectionRowStatus;
4501
4593
  /**
4502
- * The currently selected id
4594
+ * Whether this provider is currently enabled. A disabled provider the user is still connected to
4595
+ * is retained as a row so it can be disconnected.
4503
4596
  */
4504
- readonly selectedId: Maybe<NotificationId>;
4597
+ readonly enabled: boolean;
4505
4598
  }
4506
4599
  /**
4507
- * Store used for selecting a specific NotificationItem from a list of notification items.
4600
+ * An action rendered on a connection row.
4601
+ *
4602
+ * Rows take an ARRAY of these because the `error` status wants both Reconnect and Disconnect.
4508
4603
  */
4509
- declare class DbxFirebaseNotificationItemStore extends ComponentStore<DbxFirebaseNotificationItemStoreState> {
4510
- constructor();
4511
- readonly items$: rxjs.Observable<NotificationItem<{}>[]>;
4512
- readonly selectedId$: rxjs.Observable<Maybe<string>>;
4513
- readonly selectedItem$: rxjs.Observable<NotificationItem<{}> | undefined>;
4514
- readonly setItems: (observableOrValue: NotificationItem<{}>[] | rxjs.Observable<NotificationItem<{}>[]>) => rxjs.Subscription;
4515
- readonly setSelectedId: (() => void) | ((observableOrValue: Maybe<string> | rxjs.Observable<Maybe<string>>) => rxjs.Subscription);
4516
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemStore, never>;
4517
- static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirebaseNotificationItemStore>;
4604
+ interface DbxFirebaseExternalConnectionActionConfig {
4605
+ readonly label: string;
4606
+ readonly icon?: Maybe<string>;
4607
+ readonly confirm?: Maybe<DbxActionConfirmConfig>;
4608
+ readonly handler: WorkUsingContext;
4518
4609
  }
4519
-
4520
4610
  /**
4521
- * Document store for a single Notification, providing derived observables for creation date, send state, and update functions.
4611
+ * One rendered list item: a row plus the actions currently available for it.
4612
+ *
4613
+ * The actions are paired with the row here rather than derived by the item component because building them needs
4614
+ * the connect/disconnect handlers, which belong to the container that owns the stores.
4522
4615
  */
4523
- declare class NotificationDocumentStore extends AbstractDbxFirebaseDocumentWithParentStore<Notification, NotificationBox, NotificationDocument, NotificationBoxDocument> {
4524
- readonly notificationFunctions: NotificationFunctions;
4525
- constructor();
4526
- readonly createdAt$: rxjs.Observable<_dereekb_util.Maybe<Date>>;
4527
- readonly nextSendAt$: rxjs.Observable<_dereekb_util.Maybe<Date>>;
4528
- readonly sendType$: rxjs.Observable<_dereekb_firebase.NotificationSendType>;
4529
- readonly sendAttemptsCount$: rxjs.Observable<number>;
4530
- readonly isUnique$: rxjs.Observable<_dereekb_util.Maybe<boolean>>;
4531
- readonly sendNotification: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.SendNotificationParams, _dereekb_firebase.SendNotificationResult>;
4532
- static ɵfac: i0.ɵɵFactoryDeclaration<NotificationDocumentStore, never>;
4533
- static ɵprov: i0.ɵɵInjectableDeclaration<NotificationDocumentStore>;
4616
+ interface DbxFirebaseExternalConnectionListItemValue {
4617
+ readonly row: DbxFirebaseExternalConnectionRow;
4618
+ readonly actions?: Maybe<DbxFirebaseExternalConnectionActionConfig[]>;
4534
4619
  }
4535
-
4536
4620
  /**
4537
- * Directive providing a {@link NotificationDocumentStore} for accessing a single notification document.
4621
+ * Derives a row's presentation status from its entry.
4622
+ *
4623
+ * @param entry - The user's entry for the provider, if any.
4624
+ * @returns The row status.
4538
4625
  */
4539
- declare class DbxFirebaseNotificationDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective<Notification, NotificationDocument, NotificationDocumentStore> {
4540
- constructor();
4541
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationDocumentStoreDirective, never>;
4542
- static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseNotificationDocumentStoreDirective, "[dbxFirebaseNotificationDocument]", never, {}, {}, never, never, true, never>;
4543
- }
4544
-
4626
+ declare function dbxFirebaseExternalConnectionRowStatusForEntry(entry: Maybe<UserExternalConnectionEntry>): DbxFirebaseExternalConnectionRowStatus;
4545
4627
  /**
4546
- * Collection store for Notification documents, scoped to a parent NotificationBox when available.
4628
+ * Input for {@link dbxFirebaseExternalConnectionRows}.
4547
4629
  */
4548
- declare class NotificationCollectionStore extends AbstractDbxFirebaseCollectionWithParentStore<Notification, NotificationBox, NotificationDocument, NotificationBoxDocument> {
4549
- constructor();
4550
- static ɵfac: i0.ɵɵFactoryDeclaration<NotificationCollectionStore, never>;
4551
- static ɵprov: i0.ɵɵInjectableDeclaration<NotificationCollectionStore>;
4630
+ interface DbxFirebaseExternalConnectionRowsInput {
4631
+ /**
4632
+ * Every registered provider, in registration order.
4633
+ */
4634
+ readonly providers: DbxFirebaseExternalConnectionProvider[];
4635
+ /**
4636
+ * The provider types that are currently enabled.
4637
+ */
4638
+ readonly enabledProviderTypes: UserExternalConnectionProviderType[];
4639
+ /**
4640
+ * The user's per-provider entries, or null while still loading.
4641
+ */
4642
+ readonly entries: Maybe<UserExternalConnectionEntryMap>;
4643
+ /**
4644
+ * Whether the connection document is still loading.
4645
+ */
4646
+ readonly loading?: Maybe<boolean>;
4552
4647
  }
4553
-
4554
4648
  /**
4555
- * Directive providing a {@link NotificationCollectionStore} for querying notifications within a template.
4649
+ * Builds the rows to render.
4650
+ *
4651
+ * The row set is the union of the enabled providers and any registered provider the user still has
4652
+ * an entry for, so a provider that has since been disabled can still be disconnected.
4653
+ *
4654
+ * @param input - The registry state plus the user's entries.
4655
+ * @returns The rows, in registration order.
4556
4656
  */
4557
- declare class DbxFirebaseNotificationCollectionStoreDirective extends DbxFirebaseCollectionWithParentStoreDirective<Notification, NotificationBox, NotificationDocument, NotificationBoxDocument, NotificationCollectionStore> {
4558
- constructor();
4559
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationCollectionStoreDirective, never>;
4560
- static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseNotificationCollectionStoreDirective, "[dbxFirebaseNotificationCollection]", never, {}, {}, never, never, true, never>;
4561
- }
4657
+ declare function dbxFirebaseExternalConnectionRows(input: DbxFirebaseExternalConnectionRowsInput): DbxFirebaseExternalConnectionRow[];
4562
4658
 
4563
4659
  /**
4564
- * Document store for a single NotificationBox, providing derived observables for creation date, recipients, and update functions.
4660
+ * Default presentation for Cal.com.
4661
+ *
4662
+ * `icon` is a Material Symbols name throughout these defaults: the brand logo set the login registry
4663
+ * pulls from covers Firebase's own auth providers only, so a real mark for any of these services
4664
+ * would need a new asset. An app that has one passes `assets.logoUrl` instead.
4565
4665
  */
4566
- declare class NotificationBoxDocumentStore extends AbstractDbxFirebaseDocumentStore<NotificationBox, NotificationBoxDocument> {
4567
- readonly notificationFunctions: NotificationFunctions;
4568
- constructor();
4569
- readonly createdAt$: rxjs.Observable<_dereekb_util.Maybe<Date>>;
4570
- readonly recipients$: rxjs.Observable<_dereekb_firebase.NotificationBoxRecipient[]>;
4571
- readonly updateNotificationBox: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.TargetModelParams, void>;
4572
- readonly updateNotificationBoxRecipient: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.UpdateNotificationBoxRecipientParams, void>;
4573
- static ɵfac: i0.ɵɵFactoryDeclaration<NotificationBoxDocumentStore, never>;
4574
- static ɵprov: i0.ɵɵInjectableDeclaration<NotificationBoxDocumentStore>;
4575
- }
4576
-
4666
+ declare const DBX_FIREBASE_EXTERNAL_CONNECTION_CALCOM_PROVIDER: DbxFirebaseExternalConnectionProvider;
4577
4667
  /**
4578
- * Directive providing a {@link NotificationBoxDocumentStore} for accessing a single notification box document.
4668
+ * Default presentation for Zoom.
4579
4669
  */
4580
- declare class DbxFirebaseNotificationBoxDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective<NotificationBox, NotificationBoxDocument, NotificationBoxDocumentStore> {
4581
- constructor();
4582
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationBoxDocumentStoreDirective, never>;
4583
- static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseNotificationBoxDocumentStoreDirective, "[dbxFirebaseNotificationBoxDocument]", never, {}, {}, never, never, true, never>;
4584
- }
4670
+ declare const DBX_FIREBASE_EXTERNAL_CONNECTION_ZOOM_PROVIDER: DbxFirebaseExternalConnectionProvider;
4671
+ /**
4672
+ * Default presentation for Discord.
4673
+ */
4674
+ declare const DBX_FIREBASE_EXTERNAL_CONNECTION_DISCORD_PROVIDER: DbxFirebaseExternalConnectionProvider;
4675
+ /**
4676
+ * Default presentation for Zoho.
4677
+ */
4678
+ declare const DBX_FIREBASE_EXTERNAL_CONNECTION_ZOHO_PROVIDER: DbxFirebaseExternalConnectionProvider;
4679
+ /**
4680
+ * The library's provider for each known third-party service, keyed by provider type.
4681
+ *
4682
+ * Every service the workspace ships a server-side OAuth adapter for appears here, so an app that
4683
+ * mounts one of those controllers has nothing to declare on the client beyond naming it.
4684
+ */
4685
+ declare const DBX_FIREBASE_KNOWN_EXTERNAL_CONNECTION_PROVIDERS: Record<KnownUserExternalConnectionProviderType, DbxFirebaseExternalConnectionProvider>;
4686
+ /**
4687
+ * Config for {@link dbxFirebaseKnownExternalConnectionProvider}.
4688
+ */
4689
+ interface DbxFirebaseKnownExternalConnectionProviderConfig {
4690
+ /**
4691
+ * The known provider to start from.
4692
+ */
4693
+ readonly providerType: KnownUserExternalConnectionProviderType;
4694
+ /**
4695
+ * Asset values to merge over the known provider's, so an app can reword one line without
4696
+ * restating the rest.
4697
+ */
4698
+ readonly assets?: Maybe<Partial<DbxFirebaseExternalConnectionProviderAssets>>;
4699
+ /**
4700
+ * Overrides the known provider's authorize path.
4701
+ */
4702
+ readonly authorizePath?: Maybe<string>;
4703
+ /**
4704
+ * Overrides the default redirect-based connect behavior.
4705
+ */
4706
+ readonly connect?: Maybe<DbxFirebaseExternalConnectionConnectFunction>;
4707
+ /**
4708
+ * Confirmation shown before disconnecting.
4709
+ */
4710
+ readonly disconnectConfirm?: Maybe<DbxActionConfirmConfig>;
4711
+ }
4712
+ /**
4713
+ * Builds a provider from a known one, with the given overrides applied.
4714
+ *
4715
+ * @param config - The known provider to start from, plus the values to override.
4716
+ * @returns The provider to register.
4717
+ * @throws {Error} When there is no known provider for the given type.
4718
+ */
4719
+ declare function dbxFirebaseKnownExternalConnectionProvider(config: DbxFirebaseKnownExternalConnectionProviderConfig): DbxFirebaseExternalConnectionProvider;
4720
+ /**
4721
+ * Resolves a configured entry to the provider to register.
4722
+ *
4723
+ * @param entry - A known provider type, or a fully-declared provider.
4724
+ * @returns The provider to register.
4725
+ * @throws {Error} When the entry names a provider type the library has no defaults for.
4726
+ */
4727
+ declare function dbxFirebaseExternalConnectionProviderForEntry(entry: DbxFirebaseExternalConnectionProviderEntry): DbxFirebaseExternalConnectionProvider;
4728
+
4729
+ /**
4730
+ * How long {@link DEFAULT_EXTERNAL_CONNECTION_NAVIGATE_FUNCTION} waits for the browser to leave the
4731
+ * page before treating the redirect as having failed.
4732
+ *
4733
+ * Generous, because the wait spans the request to the app's own authorize endpoint plus the redirect
4734
+ * chain out to the provider, and a cold serverless function alone can take several seconds.
4735
+ */
4736
+ declare const DEFAULT_EXTERNAL_CONNECTION_NAVIGATE_TIMEOUT: number;
4737
+ /**
4738
+ * Starts a top-level navigation and resolves only once the browser has committed to leaving the
4739
+ * current page, rejecting when it has not done so within the timeout.
4740
+ *
4741
+ * `pagehide` is the signal: it fires as the browser is about to unload this document for the new one,
4742
+ * which is the earliest point the navigation is known to have actually taken. Anything earlier — an
4743
+ * assignment to `location.href` returning, say — only says the navigation was *requested*.
4744
+ *
4745
+ * The navigation is invoked here rather than by the caller so the listener is always in place before
4746
+ * the page can go, and so a refused navigation settles immediately instead of waiting out the timeout.
4747
+ *
4748
+ * @param navigate - Starts the navigation.
4749
+ * @param timeout - How long to wait before rejecting. Defaults to {@link DEFAULT_EXTERNAL_CONNECTION_NAVIGATE_TIMEOUT}.
4750
+ * @returns Resolves when the page is being unloaded for the navigation.
4751
+ */
4752
+ declare function navigateAndWaitForPageToLeave(navigate: () => void, timeout?: number): Promise<void>;
4753
+ /**
4754
+ * Default navigation: a top-level browser redirect that settles only once the new page is opening.
4755
+ *
4756
+ * Assigning `location.href` returns immediately — before the request for the new document has even
4757
+ * been answered — so a caller that treated the assignment as the end of the work reported success
4758
+ * while the old page was still sitting there. Waiting for the unload instead means the connect action
4759
+ * stays in its working state for as long as the user is still looking at the settings page, and a
4760
+ * redirect the browser refuses outright surfaces as an error rather than a silent success.
4761
+ *
4762
+ * @param url - The url to navigate to.
4763
+ * @returns Resolves once the browser is leaving the page for the new url.
4764
+ */
4765
+ declare const DEFAULT_EXTERNAL_CONNECTION_NAVIGATE_FUNCTION: (url: string) => Promise<void>;
4766
+ /**
4767
+ * Registry of the third-party services a user can connect their account to.
4768
+ *
4769
+ * Modeled on `DbxFirebaseAuthLoginService`, but WITHOUT any per-user state: it is root-scoped, so a
4770
+ * Firestore listener held here would live for the app's lifetime and lock the UI to one user. The
4771
+ * connection state is resolved by the container component instead, from a single document read that
4772
+ * is fanned out to every row.
4773
+ */
4774
+ declare class DbxFirebaseExternalConnectionService {
4775
+ readonly config: DbxFirebaseExternalConnectionsConfig;
4776
+ /**
4777
+ * Optional so the registry is usable — and testable — in an app that has not wired the
4778
+ * userExternalConnection callables. Only state minting needs them, and it says so when they are
4779
+ * missing rather than failing every injection of this service.
4780
+ */
4781
+ private readonly _userExternalConnectionFunctions;
4782
+ private readonly _providers;
4783
+ private readonly _assets;
4784
+ private _enableAll;
4785
+ private _enabled;
4786
+ constructor();
4787
+ /**
4788
+ * Registers a provider.
4789
+ *
4790
+ * @param provider - The provider to register.
4791
+ * @param override - Whether to override an existing provider of the same type. Defaults to true.
4792
+ * @returns True if the provider was registered.
4793
+ */
4794
+ register(provider: DbxFirebaseExternalConnectionProvider, override?: boolean): boolean;
4795
+ /**
4796
+ * Patches the assets for a provider type.
4797
+ *
4798
+ * @param providerType - The provider to update.
4799
+ * @param assets - The asset values to merge in.
4800
+ */
4801
+ updateAssetsForProvider(providerType: UserExternalConnectionProviderType, assets: Partial<DbxFirebaseExternalConnectionProviderAssets>): void;
4802
+ /**
4803
+ * Enables all providers, including any registered later.
4804
+ *
4805
+ * @param enableAll - Whether to enable all providers. Defaults to true.
4806
+ */
4807
+ setEnableAll(enableAll?: boolean): void;
4808
+ clearEnabled(): void;
4809
+ enable(types: ArrayOrValue<UserExternalConnectionProviderType>): void;
4810
+ disable(types: ArrayOrValue<UserExternalConnectionProviderType>): void;
4811
+ getRegisteredTypes(): UserExternalConnectionProviderType[];
4812
+ getEnabledTypes(): UserExternalConnectionProviderType[];
4813
+ getProvider(providerType: UserExternalConnectionProviderType): Maybe<DbxFirebaseExternalConnectionProvider>;
4814
+ getProviders(types?: Maybe<Iterable<UserExternalConnectionProviderType>>): DbxFirebaseExternalConnectionProvider[];
4815
+ getAssetsForProvider(providerType: UserExternalConnectionProviderType): Maybe<DbxFirebaseExternalConnectionProviderAssets>;
4816
+ /**
4817
+ * Whether the connect flow mints a signed `state` and carries it on the authorize request.
4818
+ *
4819
+ * @returns True when state minting is enabled, which is the default.
4820
+ */
4821
+ get mintsAuthorizeState(): boolean;
4822
+ /**
4823
+ * Mints the short-lived signed `state` that begins a provider's OAuth handoff.
4824
+ *
4825
+ * An AUTHENTICATED call, which is the entire point of it: the top-level navigation that follows
4826
+ * carries no Firebase ID token, so this is the only place the server learns who is connecting.
4827
+ *
4828
+ * Requires the user to already have a connection document — the server asserts a role against it,
4829
+ * and a role map is only consulted for a document that exists. `DbxFirebaseExternalConnectionsComponent`
4830
+ * creates it on load; a custom UI that reaches this call by another route has to create it too.
4831
+ *
4832
+ * @param providerType - The provider the state is for.
4833
+ * @returns The state to send on the authorize request.
4834
+ */
4835
+ mintAuthorizeStateForProvider(providerType: UserExternalConnectionProviderType): Promise<DbxFirebaseExternalConnectionAuthorizeState>;
4836
+ /**
4837
+ * Resolves the authorize url for a provider, carrying a freshly minted `state` when state minting
4838
+ * is enabled.
4839
+ *
4840
+ * @param providerType - The provider to resolve.
4841
+ * @returns The authorize url, or null when the provider is not registered.
4842
+ */
4843
+ authorizeUrlWithStateForProvider(providerType: UserExternalConnectionProviderType): Promise<Maybe<string>>;
4844
+ /**
4845
+ * Resolves the authorize url for a provider, WITHOUT a `state`.
4846
+ *
4847
+ * @param providerType - The provider to resolve.
4848
+ * @returns The authorize url, or null when the provider is not registered.
4849
+ */
4850
+ authorizeUrlForProvider(providerType: UserExternalConnectionProviderType): Maybe<string>;
4851
+ /**
4852
+ * Starts the connect flow for a provider.
4853
+ *
4854
+ * Uses the provider's own `connect` handler when it declares one, otherwise mints the `state` and
4855
+ * navigates to the authorize url carrying it. The mint is deliberately part of the default rather
4856
+ * than something each app re-implements: the app's authorize endpoint bounces a stateless request
4857
+ * straight to its failure url, so a "connect" that skipped it would look like it worked and land
4858
+ * the user back on the settings page unconnected.
4859
+ *
4860
+ * @param providerType - The provider to connect.
4861
+ * @returns Resolves once the authorize page is actually opening, and rejects when it never opened.
4862
+ */
4863
+ connectToProvider(providerType: UserExternalConnectionProviderType): Promise<void>;
4864
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseExternalConnectionService, never>;
4865
+ static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirebaseExternalConnectionService>;
4866
+ }
4867
+
4868
+ /**
4869
+ * Injection token for the app's UserExternalConnection collection.
4870
+ *
4871
+ * The model's own `UserExternalConnectionFirestoreCollections` is an interface (the canonical model
4872
+ * folder shape) and so cannot be an Angular injection token. This abstract class is that token, and
4873
+ * is bound to the app's collections class by `provideDbxFirebaseExternalConnections()`.
4874
+ */
4875
+ declare abstract class DbxFirebaseUserExternalConnectionCollections implements UserExternalConnectionFirestoreCollections {
4876
+ abstract readonly userExternalConnectionCollection: UserExternalConnectionFirestoreCollection;
4877
+ }
4878
+ /**
4879
+ * Document store for the signed-in user's single UserExternalConnection document.
4880
+ *
4881
+ * The document id IS the user's uid, so this store is keyed with `setId(currentUid$)`.
4882
+ */
4883
+ declare class UserExternalConnectionDocumentStore extends AbstractDbxFirebaseDocumentStore<UserExternalConnection, UserExternalConnectionDocument> {
4884
+ readonly userExternalConnectionFunctions: UserExternalConnectionFunctions;
4885
+ constructor();
4886
+ /**
4887
+ * Creates the user's connection document.
4888
+ *
4889
+ * Required before any provider can be connected: the server asserts a role against this document,
4890
+ * and a role map is only consulted for a document that exists. Throws when the user already has
4891
+ * one, so call it only for a user known not to.
4892
+ */
4893
+ readonly createUserExternalConnection: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreCreateFunction<_dereekb_firebase.CreateUserExternalConnectionParams, _dereekb_firebase.OnCallCreateModelResult>;
4894
+ /**
4895
+ * Disconnects the user from a provider. The only write a client can make to the connection pair.
4896
+ */
4897
+ readonly disconnectUserExternalConnection: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.DisconnectUserExternalConnectionParams, void>;
4898
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserExternalConnectionDocumentStore, never>;
4899
+ static ɵprov: i0.ɵɵInjectableDeclaration<UserExternalConnectionDocumentStore>;
4900
+ }
4901
+
4902
+ /**
4903
+ * Directive providing a {@link UserExternalConnectionDocumentStore} for a single user's connection document.
4904
+ */
4905
+ declare class DbxFirebaseUserExternalConnectionDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective<UserExternalConnection, UserExternalConnectionDocument, UserExternalConnectionDocumentStore> {
4906
+ constructor();
4907
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseUserExternalConnectionDocumentStoreDirective, never>;
4908
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseUserExternalConnectionDocumentStoreDirective, "[dbxFirebaseUserExternalConnectionDocument]", never, {}, {}, never, never, true, never>;
4909
+ }
4910
+
4911
+ /**
4912
+ * Maps the document store's loading state into the per-provider entry map the UI renders from.
4913
+ *
4914
+ * This mapper exists because `dataLoadingState$` turns a MISSING document into
4915
+ * `errorResult(modelDoesNotExistError())` — and a user who has never connected anything has no
4916
+ * document, which is the common case, not an error. `exists$` catches `permission-denied` but does
4917
+ * not feed `dataLoadingState$`, so that case has to be handled here too.
4918
+ *
4919
+ * Both cases mean the same thing to this UI: an empty connection map.
4920
+ *
4921
+ * Pure and exported so it is unit-testable without a TestBed.
4922
+ *
4923
+ * @param state - The document store's data loading state.
4924
+ * @returns The loading state of the user's entry map.
4925
+ */
4926
+ declare function externalConnectionsLoadingStateFromDocumentLoadingState(state: LoadingState<DocumentDataWithIdAndKey<UserExternalConnection>>): LoadingState<UserExternalConnectionEntryMap>;
4927
+ /**
4928
+ * Decides whether a document load means the user has no connection document and needs one created.
4929
+ *
4930
+ * Only a definitive does-not-exist counts. A state that is still loading carries no value and would
4931
+ * otherwise read as missing — creating on it would fail for every user who does have a document. A
4932
+ * denied read is a rules problem rather than an absent document, so it does not create either.
4933
+ *
4934
+ * Pure and exported so it is unit-testable without a TestBed.
4935
+ *
4936
+ * @param state - The document store's data loading state.
4937
+ * @returns True when the document is known not to exist.
4938
+ */
4939
+ declare function shouldCreateUserExternalConnectionForDocumentLoadingState(state: LoadingState<DocumentDataWithIdAndKey<UserExternalConnection>>): boolean;
4940
+ /**
4941
+ * Derived state for the signed-in user's external connections.
4942
+ *
4943
+ * Holds THE shared subscription: one document read fanned out to every provider row, instead of one
4944
+ * read per provider. That is the payoff of collapsing to a single document per user.
4945
+ */
4946
+ declare class DbxFirebaseUserExternalConnectionsStore {
4947
+ readonly userExternalConnectionDocumentStore: UserExternalConnectionDocumentStore;
4948
+ /**
4949
+ * The user's per-provider entries. A missing document (or a denied read) resolves to an empty map.
4950
+ */
4951
+ readonly entriesLoadingState$: Observable<LoadingState<UserExternalConnectionEntryMap>>;
4952
+ /**
4953
+ * Creates the user's connection document if they do not have one, and does nothing if they do.
4954
+ *
4955
+ * Waits for a settled load before deciding, because a loading state carries no value and would
4956
+ * otherwise read as "missing" for a user who does have a document. Only the definitive
4957
+ * does-not-exist error creates: a denied read is a rules problem, not an absent document.
4958
+ *
4959
+ * The create runs through the document store, so a rejection (including losing the race with
4960
+ * another tab, which the server reports as already-exists) arrives as `error` on the returned
4961
+ * loading state rather than as a thrown error.
4962
+ *
4963
+ * @returns The loading state of the create, or a state with no value when one already exists.
4964
+ */
4965
+ createIfMissing(): Observable<Maybe<LoadingState<OnCallCreateModelResult>>>;
4966
+ /**
4967
+ * Sets the uid whose connection document is loaded. The document id IS the uid.
4968
+ *
4969
+ * @param uid - The uid, or an observable of it. Null clears the loaded document.
4970
+ */
4971
+ setUid(uid: Maybe<string> | Observable<Maybe<string>>): void;
4972
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseUserExternalConnectionsStore, never>;
4973
+ static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirebaseUserExternalConnectionsStore>;
4974
+ }
4975
+
4976
+ type DbxFirebaseExternalConnectionListItem = DbxValueAsListItem<DbxFirebaseExternalConnectionListItemValue>;
4977
+ /**
4978
+ * Renders every third-party connection as a card row.
4979
+ *
4980
+ * Composed list utilities (see `DocProgressItemListComponent` for the same recipe):
4981
+ * - `.dbx-list-card-items-list` paints each row as a tinted, rounded card;
4982
+ * - `.dbx-list-no-hover-effects` drops the hover state layer, since a row is not clickable — only its buttons are;
4983
+ * - `.dbx-list-auto-height` lets the list flow inline inside the settings section rather than filling it.
4984
+ *
4985
+ * @example
4986
+ * ```html
4987
+ * <dbx-firebase-external-connection-list [state]="listStateSignal()"></dbx-firebase-external-connection-list>
4988
+ * ```
4989
+ */
4990
+ declare class DbxFirebaseExternalConnectionListComponent extends AbstractDbxListWrapperDirective<DbxFirebaseExternalConnectionListItemValue> {
4991
+ constructor();
4992
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseExternalConnectionListComponent, never>;
4993
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseExternalConnectionListComponent, "dbx-firebase-external-connection-list", never, {}, {}, never, ["[top]", "[bottom]", "[empty]", "[emptyLoading]", "[end]"], true, never>;
4994
+ }
4995
+ declare class DbxFirebaseExternalConnectionListViewComponent extends AbstractDbxListViewDirective<DbxFirebaseExternalConnectionListItemValue> {
4996
+ readonly config: DbxValueListViewConfig<DbxFirebaseExternalConnectionListItem>;
4997
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseExternalConnectionListViewComponent, never>;
4998
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseExternalConnectionListViewComponent, "dbx-firebase-external-connection-list-view", never, {}, {}, never, never, true, never>;
4999
+ }
5000
+ /**
5001
+ * One third-party connection: its brand, its current state for the signed-in user, and the actions available for it.
5002
+ *
5003
+ * Presentational — the row and its actions arrive as the injected list item, built by the container that reads every
5004
+ * provider's state from ONE document.
5005
+ */
5006
+ declare class DbxFirebaseExternalConnectionListViewItemComponent extends AbstractDbxValueListViewItemComponent<DbxFirebaseExternalConnectionListItemValue> {
5007
+ readonly defaultIcon = "link";
5008
+ readonly autoConfirmConfig: DbxActionConfirmConfig<unknown>;
5009
+ get row(): DbxFirebaseExternalConnectionRow;
5010
+ get assets(): _dereekb_dbx_firebase.DbxFirebaseExternalConnectionProviderAssets;
5011
+ /**
5012
+ * Actions for this row. An ARRAY because the `error` status offers both Reconnect and Disconnect.
5013
+ *
5014
+ * @returns The actions to render, empty when there are none.
5015
+ */
5016
+ get actions(): DbxFirebaseExternalConnectionActionConfig[];
5017
+ get statusLabel(): string;
5018
+ get statusColor(): DbxThemeColor;
5019
+ get connectedAt(): Maybe<Date>;
5020
+ /**
5021
+ * The line under the provider name: which account is connected, or what the provider is for.
5022
+ *
5023
+ * @returns The detail line, or nullish when there is nothing to say.
5024
+ */
5025
+ get detail(): Maybe<string>;
5026
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseExternalConnectionListViewItemComponent, never>;
5027
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseExternalConnectionListViewItemComponent, "dbx-firebase-external-connection-list-view-item", never, {}, {}, never, never, true, never>;
5028
+ }
5029
+
5030
+ /**
5031
+ * Renders every registered third-party connection for the signed-in user.
5032
+ *
5033
+ * Owns the stores and makes exactly ONE `toSignal` subscription, which every row is computed from —
5034
+ * the payoff of collapsing to one connection document per user. The rows are presentational and take
5035
+ * their entry as a plain input rather than loading anything themselves.
5036
+ *
5037
+ * @example
5038
+ * ```html
5039
+ * <dbx-firebase-external-connections></dbx-firebase-external-connections>
5040
+ * ```
5041
+ */
5042
+ declare class DbxFirebaseExternalConnectionsComponent {
5043
+ readonly dbxFirebaseAuthService: DbxFirebaseAuthService;
5044
+ readonly dbxFirebaseExternalConnectionService: DbxFirebaseExternalConnectionService;
5045
+ readonly dbxFirebaseUserExternalConnectionsStore: DbxFirebaseUserExternalConnectionsStore;
5046
+ readonly userExternalConnectionDocumentStore: UserExternalConnectionDocumentStore;
5047
+ constructor();
5048
+ private readonly _currentUidSignal;
5049
+ /**
5050
+ * THE shared subscription. Every row is computed from this one document read.
5051
+ */
5052
+ private readonly _entriesStateSignal;
5053
+ readonly signedInSignal: i0.Signal<boolean>;
5054
+ readonly errorSignal: i0.Signal<Maybe<_dereekb_util.ReadableError>>;
5055
+ readonly rowsSignal: i0.Signal<DbxFirebaseExternalConnectionRow[]>;
5056
+ /**
5057
+ * The list's state.
5058
+ *
5059
+ * Always a success result, never a loading one: a row carries its own `loading` status and renders a "Loading"
5060
+ * chip, which reads better here than the list swapping itself out for a spinner and then reflowing.
5061
+ */
5062
+ readonly listStateSignal: i0.Signal<ListLoadingState<DbxFirebaseExternalConnectionListItemValue>>;
5063
+ /**
5064
+ * Builds the actions for a row.
5065
+ *
5066
+ * An errored connection offers both Reconnect and Disconnect: reconnecting is the usual fix, but a
5067
+ * user who no longer wants the integration must not be forced to reauthorize just to remove it.
5068
+ *
5069
+ * @param row - The row to build actions for.
5070
+ * @returns The actions to render, or null while loading.
5071
+ */
5072
+ actionsForRow(row: DbxFirebaseExternalConnectionRow): Maybe<DbxFirebaseExternalConnectionActionConfig[]>;
5073
+ /**
5074
+ * Starts the connect flow for a provider.
5075
+ *
5076
+ * The action stays working until the authorize page is actually opening, rather than succeeding the
5077
+ * moment the redirect is requested — the page the user is looking at has not changed yet, so a
5078
+ * success there reads as "nothing happened".
5079
+ *
5080
+ * @param providerType - The provider to connect.
5081
+ * @returns Resolves once the authorize page is actually opening.
5082
+ */
5083
+ connectToProvider(providerType: UserExternalConnectionProviderType): Promise<void>;
5084
+ /**
5085
+ * Disconnects the signed-in user from a provider.
5086
+ *
5087
+ * @param providerType - The provider to disconnect.
5088
+ * @returns The loading state observable of the callable.
5089
+ */
5090
+ disconnectFromProvider(providerType: UserExternalConnectionProviderType): rxjs.Observable<LoadingState<void>>;
5091
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseExternalConnectionsComponent, never>;
5092
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseExternalConnectionsComponent, "dbx-firebase-external-connections", never, {}, {}, never, never, true, never>;
5093
+ }
5094
+
5095
+ /**
5096
+ * Configuration for provideDbxFirebaseExternalConnections().
5097
+ */
5098
+ interface ProvideDbxFirebaseExternalConnectionsConfig extends DbxFirebaseExternalConnectionsConfig {
5099
+ /**
5100
+ * The app's Firestore collections class, which must implement `UserExternalConnectionFirestoreCollections`.
5101
+ *
5102
+ * Passed explicitly rather than derived, for the same reason `provideDbxFirestoreCollection()`
5103
+ * takes it: the library never names an app's collections class.
5104
+ */
5105
+ readonly appCollectionClass: ClassLikeType<UserExternalConnectionFirestoreCollections>;
5106
+ }
5107
+ /**
5108
+ * Registers the third-party connection providers an app offers, plus the registry service and the
5109
+ * collection token the connection stores read from.
5110
+ *
5111
+ * A SIBLING of `provideDbxFirebase()` (like `provideDbxFirebaseLogin()` / `provideDbxFirebaseOidc()`)
5112
+ * rather than part of it: it requires an app-supplied provider catalog and depends on
5113
+ * `provideDbxFirestoreCollection()` having run.
5114
+ *
5115
+ * Naming a known provider type is all an app needs to offer that service: the library carries the
5116
+ * presentation, and the connect flow — minting the signed `state`, then redirecting to the authorize
5117
+ * url carrying it — is the library's default. Nothing about it belongs in an app's config.
5118
+ *
5119
+ * @param config - The provider catalog and authorize configuration.
5120
+ * @returns EnvironmentProviders.
5121
+ *
5122
+ * @example
5123
+ * ```ts
5124
+ * provideDbxFirebaseExternalConnections({
5125
+ * appCollectionClass: DemoFirestoreCollections,
5126
+ * authorizeOrigin: environment.externalConnectionAuthorizeOrigin,
5127
+ * providers: [
5128
+ * CALCOM_USER_EXTERNAL_CONNECTION_PROVIDER_TYPE,
5129
+ * // start from a known provider and reword one line
5130
+ * dbxFirebaseKnownExternalConnectionProvider({ providerType: DISCORD_USER_EXTERNAL_CONNECTION_PROVIDER_TYPE, assets: { description: 'Link Discord to get notified in your server.' } }),
5131
+ * // or declare a service the library has no defaults for
5132
+ * APP_INTERNAL_EXTERNAL_CONNECTION_PROVIDER
5133
+ * ]
5134
+ * })
5135
+ * ```
5136
+ */
5137
+ declare function provideDbxFirebaseExternalConnections(config: ProvideDbxFirebaseExternalConnectionsConfig): EnvironmentProviders;
5138
+
5139
+ /**
5140
+ * The "send a test message" action for one delivery method's section.
5141
+ *
5142
+ * Carries the handler rather than the section emitting an output: the button — and so the `dbxAction`
5143
+ * host that drives it — lives inside the section, while the behaviour belongs to whoever owns the store.
5144
+ * The section stays presentational and the container stays in charge of what the action does.
5145
+ */
5146
+ interface DbxFirebaseNotificationHealthCheckMethodProbeActionConfig {
5147
+ /**
5148
+ * Label for the button, e.g. `Send Test Email`.
5149
+ */
5150
+ readonly label: string;
5151
+ /**
5152
+ * Material icon name for the button.
5153
+ */
5154
+ readonly icon?: Maybe<string>;
5155
+ /**
5156
+ * Whether the action is currently unavailable — typically because the server's probe window for this
5157
+ * method has not passed yet.
5158
+ */
5159
+ readonly disabled?: Maybe<boolean>;
5160
+ /**
5161
+ * Explains why the action is unavailable, shown above the button.
5162
+ */
5163
+ readonly notice?: Maybe<string>;
5164
+ /**
5165
+ * Confirmation shown before the action runs.
5166
+ *
5167
+ * Effectively required, for two reasons: a test message is delivered to the user for real, and
5168
+ * confirming is also what marks the action value-ready. Without a confirm the button triggers but the
5169
+ * handler never runs.
5170
+ */
5171
+ readonly confirm?: Maybe<DbxActionConfirmConfig>;
5172
+ /**
5173
+ * Dispatches the test message.
5174
+ */
5175
+ readonly handler: WorkUsingContext;
5176
+ }
5177
+ /**
5178
+ * Renders one delivery method's health check result: where it would deliver to, everything the check
5179
+ * found for it, the state of any test message that was sent through it, and — when the method can be
5180
+ * probed and an action is supplied — the button for sending a new one.
5181
+ *
5182
+ * Presentational: it injects nothing beyond the presentation registry, so it can be dropped anywhere a
5183
+ * result is already in hand. The test message action is an input rather than something it resolves.
5184
+ */
5185
+ declare class DbxFirebaseNotificationHealthCheckMethodComponent {
5186
+ private readonly _presentationService;
5187
+ readonly result: i0.InputSignal<Maybe<NotificationDeliveryHealthCheckResult>>;
5188
+ /**
5189
+ * The test message action to offer for this method, when the owner of the check has one to offer.
5190
+ *
5191
+ * Ignored unless the result reports that the method can actually be probed.
5192
+ */
5193
+ readonly probeAction: i0.InputSignal<Maybe<DbxFirebaseNotificationHealthCheckMethodProbeActionConfig>>;
5194
+ readonly methodLabelSignal: i0.Signal<string>;
5195
+ readonly methodIconSignal: i0.Signal<string>;
5196
+ readonly statusColorSignal: i0.Signal<i1.DbxThemeColor>;
5197
+ readonly statusLabelSignal: i0.Signal<string>;
5198
+ /**
5199
+ * Introduces the dispatched probe's timestamp, naming what was actually sent.
5200
+ *
5201
+ * Sentence-cased from the method's mid-sentence noun, since it opens the line.
5202
+ */
5203
+ readonly testMessageSentLabelSignal: i0.Signal<string>;
5204
+ /**
5205
+ * The action to render, which requires the server to have reported this method as probe-capable.
5206
+ *
5207
+ * The result is the authority on that, so an action supplied for a method that cannot be probed is
5208
+ * dropped rather than offering the user a test message the server would refuse to send.
5209
+ */
5210
+ readonly probeActionSignal: i0.Signal<Maybe<DbxFirebaseNotificationHealthCheckMethodProbeActionConfig>>;
5211
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationHealthCheckMethodComponent, never>;
5212
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationHealthCheckMethodComponent, "dbx-firebase-notification-healthcheck-method", never, { "result": { "alias": "result"; "required": false; "isSignal": true; }; "probeAction": { "alias": "probeAction"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5213
+ }
5214
+
5215
+ /**
5216
+ * The test message action to offer in each delivery method's section, keyed by method.
5217
+ *
5218
+ * A method with no entry gets no test message action, as does a method the check reports as not
5219
+ * probe-capable.
5220
+ */
5221
+ type DbxFirebaseNotificationHealthCheckProbeActionMap = NotificationDeliveryMethodMap<Maybe<DbxFirebaseNotificationHealthCheckMethodProbeActionConfig>>;
5222
+ /**
5223
+ * Renders a whole {@link NotificationHealthCheck}: the rolled-up status, then one section per delivery
5224
+ * method that this system can actually send through.
5225
+ *
5226
+ * This is the inlineable report — it takes the check as an input and injects nothing beyond the
5227
+ * presentation registry, so it can be dropped anywhere a check is already in hand (a settings page, a
5228
+ * dialog, an admin view). The per-method test message actions are an input for the same reason: the
5229
+ * report renders them, whoever owns the store supplies them.
5230
+ *
5231
+ * The view is client-facing, so it shows only what the user can act on. The check's account-wide
5232
+ * findings (`is`), any method the system has no send service for, and the methods in
5233
+ * {@link HIDDEN_NOTIFICATION_DELIVERY_METHODS} are left out here — all of them remain on the check
5234
+ * itself for an API/callModel consumer.
5235
+ */
5236
+ declare class DbxFirebaseNotificationHealthCheckComponent {
5237
+ private readonly _presentationService;
5238
+ readonly healthCheck: i0.InputSignal<Maybe<NotificationHealthCheck>>;
5239
+ /**
5240
+ * The test message action to offer in each method's section, keyed by delivery method.
5241
+ *
5242
+ * Left unset the report is read-only, which is what an admin or historical view wants.
5243
+ */
5244
+ readonly probeActions: i0.InputSignal<Maybe<Partial<Record<NotificationDeliveryMethod, Maybe<DbxFirebaseNotificationHealthCheckMethodProbeActionConfig>>>>>;
5245
+ readonly statusColorSignal: i0.Signal<i1.DbxThemeColor>;
5246
+ readonly statusIconSignal: i0.Signal<string>;
5247
+ readonly statusLabelSignal: i0.Signal<string>;
5248
+ /**
5249
+ * The method results worth showing the user.
5250
+ *
5251
+ * A method the server has no send service for is not something the user can do anything about, so it
5252
+ * is dropped rather than rendered as a "Not Checked" section, as is any method this report does not
5253
+ * render at all — see {@link HIDDEN_NOTIFICATION_DELIVERY_METHODS}.
5254
+ */
5255
+ readonly methodResultsSignal: i0.Signal<_dereekb_firebase.NotificationDeliveryHealthCheckResult[]>;
5256
+ /**
5257
+ * Each method section to render, paired with the test message action for its method.
5258
+ *
5259
+ * Paired up here rather than indexed in the template so the map lookup stays out of the view.
5260
+ */
5261
+ readonly methodSectionsSignal: i0.Signal<{
5262
+ result: _dereekb_firebase.NotificationDeliveryHealthCheckResult;
5263
+ probeAction: Maybe<DbxFirebaseNotificationHealthCheckMethodProbeActionConfig>;
5264
+ }[]>;
5265
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationHealthCheckComponent, never>;
5266
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationHealthCheckComponent, "dbx-firebase-notification-healthcheck", never, { "healthCheck": { "alias": "healthCheck"; "required": false; "isSignal": true; }; "probeActions": { "alias": "probeActions"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5267
+ }
5268
+
5269
+ /**
5270
+ * Renders a single {@link NotificationHealthCheckIssue}: its status chip, what was found, and what to
5271
+ * do about it.
5272
+ *
5273
+ * The chip's label and icon come from the {@link DbxFirebaseNotificationHealthCheckPresentationService}
5274
+ * registry; the message and the suggested fix always come from the issue itself, so an issue code the
5275
+ * registry has never seen still renders correctly.
5276
+ *
5277
+ * The finding's structured detail (`d`) is deliberately not rendered — values like the sending domain
5278
+ * or the delivery method key are diagnostic rather than user-facing. They remain on the issue itself,
5279
+ * so an API/callModel consumer still receives them.
5280
+ */
5281
+ declare class DbxFirebaseNotificationHealthCheckIssueComponent {
5282
+ private readonly _presentationService;
5283
+ readonly issue: i0.InputSignal<Maybe<NotificationHealthCheckIssue>>;
5284
+ /**
5285
+ * The delivery method this finding belongs to, when it belongs to one.
5286
+ *
5287
+ * Only used to label a probe finding with what was actually sent — `Test Email Sent` rather than the
5288
+ * method-agnostic `Test Sent` — since every provider emits the same probe codes. An account-wide
5289
+ * finding leaves it unset.
5290
+ */
5291
+ readonly method: i0.InputSignal<Maybe<NotificationDeliveryMethod>>;
5292
+ readonly presentationSignal: i0.Signal<_dereekb_dbx_firebase.DbxFirebaseNotificationHealthCheckIssuePresentation>;
5293
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationHealthCheckIssueComponent, never>;
5294
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationHealthCheckIssueComponent, "dbx-firebase-notification-healthcheck-issue", never, { "issue": { "alias": "issue"; "required": false; "isSignal": true; }; "method": { "alias": "method"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5295
+ }
5296
+
5297
+ /**
5298
+ * Client-side service used for retrieving notification templates.
5299
+ */
5300
+ declare class DbxFirebaseNotificationTemplateService {
5301
+ readonly appNotificationTemplateTypeInfoRecordService: AppNotificationTemplateTypeInfoRecordService;
5302
+ notificationItemSubjectMessagePairForNotificationSummaryItem<D extends NotificationItemMetadata = {}>(item: NotificationItem<D>): NotificationItemSubjectMessagePair<D>;
5303
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationTemplateService, never>;
5304
+ static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirebaseNotificationTemplateService>;
5305
+ }
5306
+
5307
+ /**
5308
+ * A notification item wrapped with list selection state.
5309
+ */
5310
+ type NotificationItemWithSelection = DbxValueAsListItem<NotificationItem>;
5311
+ /**
5312
+ * Selection list wrapper for notification items with view-only default selection mode.
5313
+ */
5314
+ declare class DbxFirebaseNotificationItemListComponent extends AbstractDbxSelectionListWrapperDirective<NotificationItem> {
5315
+ constructor();
5316
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemListComponent, never>;
5317
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemListComponent, "dbx-firebase-notificationitem-list", never, {}, {}, never, ["[top]", "[bottom]", "[empty]", "[emptyLoading]", "[end]"], true, never>;
5318
+ }
5319
+ /**
5320
+ * List view component that renders notification items using the selection list pattern.
5321
+ */
5322
+ declare class DbxFirebaseNotificationItemListViewComponent extends AbstractDbxSelectionListViewDirective<NotificationItem> {
5323
+ readonly config: DbxSelectionValueListViewConfig<NotificationItemWithSelection>;
5324
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemListViewComponent, never>;
5325
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemListViewComponent, "dbx-firebase-notificationitem-list-view", never, {}, {}, never, never, true, never>;
5326
+ }
5327
+ /**
5328
+ * Individual list view item component rendering a notification's subject, message, and date.
5329
+ */
5330
+ declare class DbxFirebaseNotificationItemListViewItemComponent extends AbstractDbxValueListViewItemComponent<NotificationItem> {
5331
+ readonly dbxFirebaseNotificationTemplateService: DbxFirebaseNotificationTemplateService;
5332
+ readonly pairGetter: _dereekb_util.CachedFactoryWithInput<_dereekb_firebase.NotificationItemSubjectMessagePair<{}>, unknown>;
5333
+ get subject(): string;
5334
+ get message(): string;
5335
+ get date(): Date;
5336
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemListViewItemComponent, never>;
5337
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemListViewItemComponent, "ng-component", never, {}, {}, never, never, true, never>;
5338
+ }
5339
+
5340
+ /**
5341
+ * Presentational component for notification item content, displaying subject, message, and date.
5342
+ */
5343
+ declare class DbxFirebaseNotificationItemContentComponent {
5344
+ readonly subject: i0.InputSignal<Maybe<string>>;
5345
+ readonly message: i0.InputSignal<Maybe<string>>;
5346
+ readonly date: i0.InputSignal<Maybe<Date>>;
5347
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemContentComponent, never>;
5348
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemContentComponent, "dbx-firebase-notificationitem-content", never, { "subject": { "alias": "subject"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; }, {}, never, ["[header]", "[premessage]", "*"], true, never>;
5349
+ }
5350
+
5351
+ /**
5352
+ * Renders a notification item using the widget system, resolving the appropriate
5353
+ * display component based on the notification's template type.
5354
+ */
5355
+ declare class DbxFirebaseNotificationItemViewComponent<D extends NotificationItemMetadata = {}> {
5356
+ readonly item: i0.InputSignal<Maybe<NotificationItem<D>>>;
5357
+ readonly configSignal: i0.Signal<DbxWidgetViewComponentConfig<unknown> | undefined>;
5358
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemViewComponent<any>, never>;
5359
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemViewComponent<any>, "dbx-firebase-notificationitem-view", never, { "item": { "alias": "item"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5360
+ }
5361
+
5362
+ /**
5363
+ * Abstract base directive for notification item widget display components.
5364
+ *
5365
+ * Provides typed access to the {@link NotificationItem} data for custom rendering.
5366
+ */
5367
+ declare abstract class AbstractDbxFirebaseNotificationItemWidgetComponent<D extends NotificationItemMetadata = {}> extends AbstractDbxWidgetComponent<NotificationItem<D>> {
5368
+ get notificationItem(): NotificationItem<D>;
5369
+ static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDbxFirebaseNotificationItemWidgetComponent<any>, never>;
5370
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractDbxFirebaseNotificationItemWidgetComponent<any>, never, never, {}, {}, never, never, true, never>;
5371
+ }
5372
+
5373
+ /**
5374
+ * Default notification item view component that renders subject, message, and creation date.
5375
+ */
5376
+ declare class DbxFirebaseNotificationItemDefaultViewComponent extends AbstractDbxFirebaseNotificationItemWidgetComponent {
5377
+ get subject(): _dereekb_util.Maybe<string>;
5378
+ get message(): _dereekb_util.Maybe<string>;
5379
+ get date(): Date;
5380
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemDefaultViewComponent, never>;
5381
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemDefaultViewComponent, "dbx-firebase-notificationitem-view-default", never, {}, {}, never, never, true, never>;
5382
+ }
5383
+
5384
+ /**
5385
+ * Configuration for the {@link DbxFirebaseNotificationHealthCheckDialogButtonComponent}.
5386
+ */
5387
+ interface DbxFirebaseNotificationHealthCheckDialogButtonComponentConfig {
5388
+ readonly text?: Maybe<string>;
5389
+ readonly icon?: Maybe<string>;
5390
+ }
5391
+ /**
5392
+ * Button that opens the notification delivery health check in a dialog.
5393
+ *
5394
+ * Place it inside a `dbxFirebaseNotificationUserDocument` so the dialog's view component can resolve
5395
+ * that directive's NotificationUserDocumentStore.
5396
+ */
5397
+ declare class DbxFirebaseNotificationHealthCheckDialogButtonComponent {
5398
+ private readonly _matDialog;
5399
+ private readonly _injector;
5400
+ readonly config: i0.InputSignal<Maybe<DbxFirebaseNotificationHealthCheckDialogButtonComponentConfig>>;
5401
+ readonly text: i0.InputSignal<Maybe<string>>;
5402
+ readonly icon: i0.InputSignal<Maybe<string>>;
5403
+ readonly textSignal: i0.Signal<string>;
5404
+ readonly iconSignal: i0.Signal<string>;
5405
+ openHealthCheckDialog(): void;
5406
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationHealthCheckDialogButtonComponent, never>;
5407
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationHealthCheckDialogButtonComponent, "dbx-firebase-notification-healthcheck-dialog-button", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5408
+ }
5409
+
5410
+ /**
5411
+ * Configuration for opening a {@link DbxFirebaseNotificationHealthCheckDialogComponent}.
5412
+ */
5413
+ interface DbxFirebaseNotificationHealthCheckDialogComponentConfig {
5414
+ /**
5415
+ * The injector to open the dialog with.
5416
+ *
5417
+ * A dialog renders outside the opening component's view, so it does not inherit that component's
5418
+ * injector by default. Passing the opener's injector is what lets the view component resolve the
5419
+ * NotificationUserDocumentStore that `dbxFirebaseNotificationUserDocument` provided.
5420
+ */
5421
+ readonly injector?: Injector;
5422
+ }
5423
+ /**
5424
+ * Dialog wrapper around {@link DbxFirebaseNotificationHealthCheckViewComponent}.
5425
+ */
5426
+ declare class DbxFirebaseNotificationHealthCheckDialogComponent extends AbstractDialogDirective {
5427
+ /**
5428
+ * Opens the notification delivery health check in a dialog.
5429
+ *
5430
+ * @param matDialog - The dialog service.
5431
+ * @param config - The injector to resolve the NotificationUserDocumentStore from.
5432
+ * @returns The dialog reference.
5433
+ */
5434
+ static openDialog(matDialog: MatDialog, config?: DbxFirebaseNotificationHealthCheckDialogComponentConfig): MatDialogRef<DbxFirebaseNotificationHealthCheckDialogComponent>;
5435
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationHealthCheckDialogComponent, never>;
5436
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationHealthCheckDialogComponent, "ng-component", never, {}, {}, never, never, true, never>;
5437
+ }
5438
+
5439
+ /**
5440
+ * Document store for a single NotificationUser with update, resync, and health check functions.
5441
+ */
5442
+ declare class NotificationUserDocumentStore extends AbstractDbxFirebaseDocumentStore<NotificationUser, NotificationUserDocument> {
5443
+ readonly notificationFunctions: NotificationFunctions;
5444
+ constructor();
5445
+ readonly updateNotificationUser: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.UpdateNotificationUserParams, void>;
5446
+ readonly resyncNotificationUser: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.TargetModelParams, _dereekb_firebase.ResyncNotificationUserResult>;
5447
+ /**
5448
+ * Runs a delivery health check for this NotificationUser.
5449
+ *
5450
+ * Dispatching a real test message is opt-in via the `sendProbe` param, since it delivers actual
5451
+ * mail/SMS to the user.
5452
+ *
5453
+ * The result is only returned by the call, so use the DbxFirebaseNotificationUserHealthCheckStore
5454
+ * to run a check whose outcome is retained as state.
5455
+ */
5456
+ readonly healthCheck: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.NotificationUserHealthCheckParams, _dereekb_firebase.NotificationUserHealthCheckResult>;
5457
+ static ɵfac: i0.ɵɵFactoryDeclaration<NotificationUserDocumentStore, never>;
5458
+ static ɵprov: i0.ɵɵInjectableDeclaration<NotificationUserDocumentStore>;
5459
+ }
5460
+
5461
+ /**
5462
+ * Params for a health check run. The store injects the NotificationUser key, so it is not required.
5463
+ */
5464
+ type DbxFirebaseNotificationUserHealthCheckRunParams = DbxFirebaseDocumentStoreFunctionParamsInput<NotificationUserHealthCheckParams>;
5465
+ interface DbxFirebaseNotificationUserHealthCheckStoreState {
5466
+ /**
5467
+ * The loading state of the most recent health check run made through this store.
5468
+ *
5469
+ * Only set once a run has been dispatched. The check itself is persisted on the NotificationUser,
5470
+ * so the stored one is read from the document instead.
5471
+ */
5472
+ readonly healthCheckResultState?: Maybe<LoadingState<NotificationUserHealthCheckResult>>;
5473
+ }
5474
+ /**
5475
+ * Store for running a notification delivery health check against the NotificationUser of the
5476
+ * injected {@link NotificationUserDocumentStore}, and for retaining the result of that run.
5477
+ *
5478
+ * Exists separately from the document store because a run returns more than what is persisted:
5479
+ * `probesDispatched`/`probesResolved` are only available on the invocation result, and are only
5480
+ * relevant to the session that ran the check.
5481
+ */
5482
+ declare class DbxFirebaseNotificationUserHealthCheckStore extends ComponentStore<DbxFirebaseNotificationUserHealthCheckStoreState> {
5483
+ readonly notificationUserDocumentStore: NotificationUserDocumentStore;
5484
+ /**
5485
+ * The app's health check tuning, when it configured any.
5486
+ *
5487
+ * Optional: without it both windows fall back to the library defaults, which is correct for an app
5488
+ * that did not override them on the server either.
5489
+ */
5490
+ private readonly _config;
5491
+ constructor();
5492
+ /**
5493
+ * Whether the NotificationUser being checked exists.
5494
+ *
5495
+ * There is nothing to check until notifications have been set up for the account.
5496
+ */
5497
+ readonly exists$: Observable<boolean>;
5498
+ /**
5499
+ * The health check stored on the document.
5500
+ *
5501
+ * The check is persisted on every run, so the most recent one renders without invoking anything.
5502
+ */
5503
+ readonly healthCheck$: Observable<Maybe<_dereekb_firebase.NotificationHealthCheck>>;
5504
+ /**
5505
+ * The loading state of the most recent {@link runHealthCheck} dispatch.
5506
+ *
5507
+ * A dispatch sets this to a loading state synchronously, so a caller that dispatches and then
5508
+ * watches this observable is watching its own run.
5509
+ */
5510
+ readonly healthCheckResultState$: Observable<Maybe<LoadingState<NotificationUserHealthCheckResult>>>;
5511
+ /**
5512
+ * The full result of the most recent {@link runHealthCheck} run from this store.
5513
+ *
5514
+ * `probesDispatched`/`probesResolved` are not part of the document, so they are only available here
5515
+ * and only until the store is destroyed.
5516
+ */
5517
+ readonly latestHealthCheckResult$: Observable<Maybe<NotificationUserHealthCheckResult>>;
5518
+ /**
5519
+ * The earliest time another run is allowed, derived from the check stored on the document.
5520
+ *
5521
+ * Undefined until a check has been run.
5522
+ */
5523
+ readonly nextRunAt$: Observable<Maybe<Date>>;
5524
+ /**
5525
+ * The earliest time another test message may be dispatched through each delivery method.
5526
+ *
5527
+ * Per method, because the server's probe window is per method: each method has its own test message
5528
+ * action, and a test email must not hold the test text message off. Tracked separately from
5529
+ * {@link nextRunAt$} as well — running the check does not consume the test message allowance, so a
5530
+ * plain run must not disable any of the probe actions.
5531
+ */
5532
+ readonly nextProbeAtByMethod$: Observable<NotificationDeliveryMethodMap<Maybe<Date>>>;
5533
+ /**
5534
+ * How long until another run is allowed, counting down once per second.
5535
+ */
5536
+ readonly throttleSecondsRemaining$: Observable<Seconds>;
5537
+ /**
5538
+ * How long until another test message may be dispatched through each delivery method, counting down
5539
+ * once per second.
5540
+ *
5541
+ * A method whose window has never opened — no probe has been dispatched through it — is absent, which
5542
+ * a consumer reads the same as 0.
5543
+ */
5544
+ readonly probeThrottleSecondsRemainingByMethod$: Observable<NotificationDeliveryMethodMap<Seconds>>;
5545
+ /**
5546
+ * Whether the server would reject a run right now.
5547
+ *
5548
+ * The server enforces the throttle; this is what lets the view disable the action instead of letting
5549
+ * the user trigger a call that comes back as an error.
5550
+ */
5551
+ readonly isThrottled$: Observable<boolean>;
5552
+ /**
5553
+ * The delivery methods whose test message is still waiting on an outcome.
5554
+ *
5555
+ * The one part of a stored check that changes without anyone re-running it, so it is what
5556
+ * {@link watchPendingProbes} watches.
5557
+ */
5558
+ readonly pendingProbeMethods$: Observable<NotificationDeliveryMethod[]>;
5559
+ /**
5560
+ * Whether a test message is in flight right now.
5561
+ */
5562
+ readonly hasPendingProbe$: Observable<boolean>;
5563
+ /**
5564
+ * The next verification to run, or null when there is nothing to watch.
5565
+ *
5566
+ * Re-derived from the document on every change, which is what paces the loop: each verification
5567
+ * advances the stored check's `vat`, so the moment the server will accept another poll moves forward
5568
+ * and this emits the next one. The watch gives up once the oldest probe has been in flight longer than
5569
+ * the configured window — a provider that is never going to record an outcome should not be polled for
5570
+ * as long as the page stays open.
5571
+ */
5572
+ private readonly _nextProbeVerification$;
5573
+ private readonly _setHealthCheckResultState;
5574
+ /**
5575
+ * Runs the document store's health check for its NotificationUser and puts the outcome on
5576
+ * {@link healthCheckResultState$}.
5577
+ *
5578
+ * Dispatching a real test message is opt-in via the `sendProbe` param, since it delivers actual
5579
+ * mail/SMS to the user.
5580
+ *
5581
+ * While a run is in flight further dispatches are ignored, so the state always reflects the run
5582
+ * that is actually happening.
5583
+ */
5584
+ readonly runHealthCheck: (observableOrValue: Maybe<Omit<NotificationUserHealthCheckParams, "key"> & Partial<Pick<NotificationUserHealthCheckParams, "key">>> | Observable<Maybe<Omit<NotificationUserHealthCheckParams, "key"> & Partial<Pick<NotificationUserHealthCheckParams, "key">>>>) => rxjs.Subscription;
5585
+ /**
5586
+ * Watches every in-flight test message until it has an outcome, without the user doing anything.
5587
+ *
5588
+ * A dispatched probe settles on the delivery provider's schedule rather than the caller's, so
5589
+ * something has to ask again once the outcome exists. That used to be the user, told to come back and
5590
+ * re-run the check; this is that same poll, run automatically. Each verification is scoped to the
5591
+ * methods actually awaiting an outcome and answers to its own server-side window, so it neither sends
5592
+ * anything nor consumes the user's allowance for running the check itself. The result lands on the
5593
+ * NotificationUser, which is already streamed into {@link healthCheck$}, so a settled probe simply
5594
+ * appears in the report.
5595
+ *
5596
+ * Idempotent to start and safe to leave running: it does nothing at all while no probe is in flight,
5597
+ * and stops on its own once every probe has settled or aged out.
5598
+ */
5599
+ readonly watchPendingProbes: (observableOrValue?: void | Observable<void> | undefined) => rxjs.Subscription;
5600
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationUserHealthCheckStore, never>;
5601
+ static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirebaseNotificationUserHealthCheckStore>;
5602
+ }
5603
+ /**
5604
+ * A scheduled verification of the test messages a check has in flight.
5605
+ */
5606
+ interface DbxFirebaseNotificationUserHealthCheckProbeVerification {
5607
+ /**
5608
+ * The delivery methods awaiting an outcome.
5609
+ */
5610
+ readonly methods: NotificationDeliveryMethod[];
5611
+ /**
5612
+ * The earliest time the server will accept the verification.
5613
+ */
5614
+ readonly at: Date;
5615
+ }
5616
+
5617
+ /**
5618
+ * Renders the notification delivery health check for the ancestor NotificationUserDocumentStore, and
5619
+ * the actions for re-running it.
5620
+ *
5621
+ * The check is persisted on the NotificationUser, so the last one renders immediately without invoking
5622
+ * anything. "Run Check" re-runs it and stays a single global action, since a run only reads
5623
+ * configuration and provider state. Sending a test message is per delivery method instead — it
5624
+ * dispatches a real message through that one method, and answers to that method's own throttle window —
5625
+ * so its action lives in that method's section rather than in a footer.
5626
+ *
5627
+ * A dispatched test message settles later, on the delivery provider's schedule. This view watches for
5628
+ * that outcome itself rather than telling the user to come back and re-run the check: the store polls a
5629
+ * cheap server-side verification while anything is in flight, and the report — read live from the
5630
+ * document — updates the moment the result lands.
5631
+ */
5632
+ declare class DbxFirebaseNotificationHealthCheckViewComponent {
5633
+ private readonly _presentationService;
5634
+ readonly healthCheckStore: DbxFirebaseNotificationUserHealthCheckStore;
5635
+ readonly existsSignal: i0.Signal<boolean>;
5636
+ readonly healthCheckSignal: i0.Signal<Maybe<_dereekb_firebase.NotificationHealthCheck>>;
5637
+ readonly latestHealthCheckResultSignal: i0.Signal<Maybe<_dereekb_firebase.NotificationUserHealthCheckResult>>;
5638
+ readonly throttleSecondsRemainingSignal: i0.Signal<number>;
5639
+ readonly isThrottledSignal: i0.Signal<boolean>;
5640
+ readonly probeThrottleSecondsRemainingByMethodSignal: i0.Signal<Partial<Record<NotificationDeliveryMethod, number>>>;
5641
+ private readonly _lastRequestedProbeMethod;
5642
+ constructor();
5643
+ /**
5644
+ * The delivery method whose test message was most recently requested from this view.
5645
+ *
5646
+ * Recorded because the invocation result reports only how many probes it dispatched, so this is what
5647
+ * lets the notice name what was sent.
5648
+ */
5649
+ readonly lastRequestedProbeMethodSignal: i0.Signal<Maybe<NotificationDeliveryMethod>>;
5650
+ /**
5651
+ * The test message handler for each delivery method, built once up front.
5652
+ *
5653
+ * A per-method countdown rebuilds that method's action config every second, and `dbxActionHandler`
5654
+ * installs its handler in an effect, so handing over a fresh closure on each tick would re-install it
5655
+ * once a second for no reason.
5656
+ */
5657
+ private readonly _sendTestMessageHandlers;
5658
+ /**
5659
+ * Explains why "Run Check" is disabled while the server's run throttle is in effect.
5660
+ */
5661
+ readonly throttleNoticeSignal: i0.Signal<string | undefined>;
5662
+ /**
5663
+ * The test message action for each delivery method the check reports as probe-capable.
5664
+ *
5665
+ * A method that cannot be probed gets no entry, so no test message is offered where the server has no
5666
+ * way to send one.
5667
+ *
5668
+ * Everything the user needs to read about a test message belongs in the section holding the button
5669
+ * that sent it, so the notice is composed here rather than in a footer: what was just sent, that its
5670
+ * outcome is being watched for, and when another may be sent.
5671
+ */
5672
+ readonly probeActionsSignal: i0.Signal<Partial<Record<NotificationDeliveryMethod, Maybe<_dereekb_dbx_firebase.DbxFirebaseNotificationHealthCheckMethodProbeActionConfig>>>>;
5673
+ /**
5674
+ * Composes one delivery method's test message notice.
5675
+ *
5676
+ * Deliberately never tells the user to come back and check: a pending outcome is watched for
5677
+ * automatically, so the only thing left to say about the wait is that they need do nothing.
5678
+ *
5679
+ * @param input - What the method sends, how long its window has left, and the state of its probe.
5680
+ * @returns The notice, or undefined when there is nothing worth saying.
5681
+ */
5682
+ private probeNoticeForMethod;
5683
+ readonly handleRunHealthCheck: WorkUsingContext;
5684
+ /**
5685
+ * Dispatches a run to the store, then tracks that run's loading state as the action's work.
5686
+ *
5687
+ * The store's effect sets the loading state synchronously as it is dispatched, so handing the state
5688
+ * observable over afterwards tracks this run instead of completing on the previous run's result.
5689
+ *
5690
+ * @param context - The work instance of the action being handled.
5691
+ * @param params - The params for this run, such as which methods to send a test message through.
5692
+ */
5693
+ private runHealthCheckAsWork;
5694
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationHealthCheckViewComponent, never>;
5695
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationHealthCheckViewComponent, "dbx-firebase-notification-healthcheck-view", never, {}, {}, never, never, true, never>;
5696
+ }
5697
+
5698
+ interface DbxFirebaseNotificationItemStorePopoverParams {
5699
+ /**
5700
+ * Custom icon
5701
+ *
5702
+ * Defaults to "history"
5703
+ */
5704
+ readonly icon?: string;
5705
+ /**
5706
+ * Custom header text
5707
+ *
5708
+ * Defaults to "History"
5709
+ */
5710
+ readonly header?: string;
5711
+ /**
5712
+ * Custom empty text when no items exist.
5713
+ */
5714
+ readonly emptyText?: string;
5715
+ /**
5716
+ * Origin to add the popover to.
5717
+ */
5718
+ readonly origin: ElementRef;
5719
+ /**
5720
+ * Items loading state.
5721
+ */
5722
+ readonly notificationItemsLoadingState$: Observable<LoadingState<NotificationItem[]>>;
5723
+ /**
5724
+ * Anchor
5725
+ */
5726
+ readonly makeNotificationItemAnchor?: Maybe<AnchorForValueFunction<NotificationItem>>;
5727
+ }
5728
+ declare const DEFAULT_DBX_FIREBASE_NOTIFICATION_ITEM_STORE_POPOVER_KEY = "notification-item-store-notifications";
5729
+ declare class DbxFirebaseNotificationItemStorePopoverComponent extends AbstractPopoverDirective<unknown, DbxFirebaseNotificationItemStorePopoverParams> {
5730
+ static openPopover(popupService: DbxPopoverService, { origin, header, icon, emptyText, makeNotificationItemAnchor, notificationItemsLoadingState$ }: DbxFirebaseNotificationItemStorePopoverParams, popoverKey?: DbxPopoverKey): NgPopoverRef;
5731
+ readonly params: DbxFirebaseNotificationItemStorePopoverParams;
5732
+ readonly icon: string;
5733
+ readonly header: string;
5734
+ readonly emptyText: string;
5735
+ readonly makeNotificationItemAnchor: Maybe<AnchorForValueFunction<NotificationItem<{}>>>;
5736
+ readonly notificationItemsLoadingState$: Observable<LoadingState<NotificationItem<{}>[]>>;
5737
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemStorePopoverComponent, never>;
5738
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemStorePopoverComponent, "ng-component", never, {}, {}, never, never, true, never>;
5739
+ }
5740
+
5741
+ type DbxFirebaseNotificationItemStorePopoverButtonConfig = DbxFirebaseNotificationItemStorePopoverParams;
5742
+ declare class DbxFirebaseNotificationItemStorePopoverButtonComponent extends AbstractPopoverRefDirective<unknown, unknown> {
5743
+ private readonly _dbxPopoverService;
5744
+ private readonly _dbxFirebaseNotificationItemStore;
5745
+ readonly buttonElement: i0.Signal<Maybe<ElementRef<any>>>;
5746
+ readonly config: i0.InputSignal<Maybe<Partial<DbxFirebaseNotificationItemStorePopoverParams>>>;
5747
+ showNotificationsPopover(): void;
5748
+ protected _makePopoverRef(origin?: ElementRef): NgPopoverRef<unknown, unknown>;
5749
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemStorePopoverButtonComponent, never>;
5750
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseNotificationItemStorePopoverButtonComponent, "dbx-firebase-notification-item-store-popover-button", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5751
+ }
5752
+
5753
+ interface DbxFirebaseNotificationItemStoreState {
5754
+ /**
5755
+ * The NotificationSummary to pull items from
5756
+ */
5757
+ readonly items: NotificationItem[];
5758
+ /**
5759
+ * The currently selected id
5760
+ */
5761
+ readonly selectedId: Maybe<NotificationId>;
5762
+ }
5763
+ /**
5764
+ * Store used for selecting a specific NotificationItem from a list of notification items.
5765
+ */
5766
+ declare class DbxFirebaseNotificationItemStore extends ComponentStore<DbxFirebaseNotificationItemStoreState> {
5767
+ constructor();
5768
+ readonly items$: rxjs.Observable<NotificationItem<{}>[]>;
5769
+ readonly selectedId$: rxjs.Observable<Maybe<string>>;
5770
+ readonly selectedItem$: rxjs.Observable<NotificationItem<{}> | undefined>;
5771
+ readonly setItems: (observableOrValue: NotificationItem<{}>[] | rxjs.Observable<NotificationItem<{}>[]>) => rxjs.Subscription;
5772
+ readonly setSelectedId: (() => void) | ((observableOrValue: Maybe<string> | rxjs.Observable<Maybe<string>>) => rxjs.Subscription);
5773
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationItemStore, never>;
5774
+ static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirebaseNotificationItemStore>;
5775
+ }
5776
+
5777
+ /**
5778
+ * Document store for a single Notification, providing derived observables for creation date, send state, and update functions.
5779
+ */
5780
+ declare class NotificationDocumentStore extends AbstractDbxFirebaseDocumentWithParentStore<Notification, NotificationBox, NotificationDocument, NotificationBoxDocument> {
5781
+ readonly notificationFunctions: NotificationFunctions;
5782
+ constructor();
5783
+ readonly createdAt$: rxjs.Observable<_dereekb_util.Maybe<Date>>;
5784
+ readonly nextSendAt$: rxjs.Observable<_dereekb_util.Maybe<Date>>;
5785
+ readonly sendType$: rxjs.Observable<_dereekb_firebase.NotificationSendType>;
5786
+ readonly sendAttemptsCount$: rxjs.Observable<number>;
5787
+ readonly isUnique$: rxjs.Observable<_dereekb_util.Maybe<boolean>>;
5788
+ readonly sendNotification: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.SendNotificationParams, _dereekb_firebase.SendNotificationResult>;
5789
+ static ɵfac: i0.ɵɵFactoryDeclaration<NotificationDocumentStore, never>;
5790
+ static ɵprov: i0.ɵɵInjectableDeclaration<NotificationDocumentStore>;
5791
+ }
5792
+
5793
+ /**
5794
+ * Directive providing a {@link NotificationDocumentStore} for accessing a single notification document.
5795
+ */
5796
+ declare class DbxFirebaseNotificationDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective<Notification, NotificationDocument, NotificationDocumentStore> {
5797
+ constructor();
5798
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationDocumentStoreDirective, never>;
5799
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseNotificationDocumentStoreDirective, "[dbxFirebaseNotificationDocument]", never, {}, {}, never, never, true, never>;
5800
+ }
5801
+
5802
+ /**
5803
+ * Collection store for Notification documents, scoped to a parent NotificationBox when available.
5804
+ */
5805
+ declare class NotificationCollectionStore extends AbstractDbxFirebaseCollectionWithParentStore<Notification, NotificationBox, NotificationDocument, NotificationBoxDocument> {
5806
+ constructor();
5807
+ static ɵfac: i0.ɵɵFactoryDeclaration<NotificationCollectionStore, never>;
5808
+ static ɵprov: i0.ɵɵInjectableDeclaration<NotificationCollectionStore>;
5809
+ }
5810
+
5811
+ /**
5812
+ * Directive providing a {@link NotificationCollectionStore} for querying notifications within a template.
5813
+ */
5814
+ declare class DbxFirebaseNotificationCollectionStoreDirective extends DbxFirebaseCollectionWithParentStoreDirective<Notification, NotificationBox, NotificationDocument, NotificationBoxDocument, NotificationCollectionStore> {
5815
+ constructor();
5816
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationCollectionStoreDirective, never>;
5817
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseNotificationCollectionStoreDirective, "[dbxFirebaseNotificationCollection]", never, {}, {}, never, never, true, never>;
5818
+ }
5819
+
5820
+ /**
5821
+ * Document store for a single NotificationBox, providing derived observables for creation date, recipients, and update functions.
5822
+ */
5823
+ declare class NotificationBoxDocumentStore extends AbstractDbxFirebaseDocumentStore<NotificationBox, NotificationBoxDocument> {
5824
+ readonly notificationFunctions: NotificationFunctions;
5825
+ constructor();
5826
+ readonly createdAt$: rxjs.Observable<_dereekb_util.Maybe<Date>>;
5827
+ readonly recipients$: rxjs.Observable<_dereekb_firebase.NotificationBoxRecipient[]>;
5828
+ readonly updateNotificationBox: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.TargetModelParams, void>;
5829
+ readonly updateNotificationBoxRecipient: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.UpdateNotificationBoxRecipientParams, void>;
5830
+ static ɵfac: i0.ɵɵFactoryDeclaration<NotificationBoxDocumentStore, never>;
5831
+ static ɵprov: i0.ɵɵInjectableDeclaration<NotificationBoxDocumentStore>;
5832
+ }
5833
+
5834
+ /**
5835
+ * Directive providing a {@link NotificationBoxDocumentStore} for accessing a single notification box document.
5836
+ */
5837
+ declare class DbxFirebaseNotificationBoxDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective<NotificationBox, NotificationBoxDocument, NotificationBoxDocumentStore> {
5838
+ constructor();
5839
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationBoxDocumentStoreDirective, never>;
5840
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseNotificationBoxDocumentStoreDirective, "[dbxFirebaseNotificationBoxDocument]", never, {}, {}, never, never, true, never>;
5841
+ }
4585
5842
 
4586
5843
  /**
4587
5844
  * Collection store for querying NotificationBox documents.
@@ -4666,24 +5923,267 @@ declare class DbxFirebaseNotificationUserCollectionStoreDirective extends DbxFir
4666
5923
  }
4667
5924
 
4668
5925
  /**
4669
- * Document store for a single NotificationUser with update and resync functions.
5926
+ * Directive providing a {@link NotificationUserDocumentStore} for accessing a single notification user document.
4670
5927
  */
4671
- declare class NotificationUserDocumentStore extends AbstractDbxFirebaseDocumentStore<NotificationUser, NotificationUserDocument> {
4672
- readonly notificationFunctions: NotificationFunctions;
5928
+ declare class DbxFirebaseNotificationUserDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective<NotificationUser, NotificationUserDocument, NotificationUserDocumentStore> {
4673
5929
  constructor();
4674
- readonly updateNotificationUser: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.UpdateNotificationUserParams, void>;
4675
- readonly resyncNotificationUser: _dereekb_dbx_firebase.DbxFirebaseDocumentStoreFunction<_dereekb_firebase.TargetModelParams, _dereekb_firebase.ResyncNotificationUserResult>;
4676
- static ɵfac: i0.ɵɵFactoryDeclaration<NotificationUserDocumentStore, never>;
4677
- static ɵprov: i0.ɵɵInjectableDeclaration<NotificationUserDocumentStore>;
5930
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationUserDocumentStoreDirective, never>;
5931
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseNotificationUserDocumentStoreDirective, "[dbxFirebaseNotificationUserDocument]", never, {}, {}, never, never, true, never>;
4678
5932
  }
4679
5933
 
4680
5934
  /**
4681
- * Directive providing a {@link NotificationUserDocumentStore} for accessing a single notification user document.
5935
+ * @module healthcheck.presentation
5936
+ *
5937
+ * Presentation metadata for notification health check findings.
5938
+ *
5939
+ * Issue codes are intentionally open-ended — apps and delivery providers emit their own — so the UI
5940
+ * needs a way to attach a label and an icon to a code it does not know about. Every issue already
5941
+ * carries its own user-facing `m` (message) and `f` (suggested fix), so a registered entry supplies
5942
+ * **presentation only, never copy**: an unregistered code still renders correctly, just with a
5943
+ * status-derived label and icon instead of a code-specific one.
4682
5944
  */
4683
- declare class DbxFirebaseNotificationUserDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective<NotificationUser, NotificationUserDocument, NotificationUserDocumentStore> {
5945
+
5946
+ /**
5947
+ * How a single {@link NotificationHealthCheckIssueCode} should be presented.
5948
+ *
5949
+ * Deliberately carries no message text: the issue itself is the authority on what to say.
5950
+ */
5951
+ interface DbxFirebaseNotificationHealthCheckPresentationEntry {
5952
+ /**
5953
+ * The issue code this entry presents.
5954
+ */
5955
+ readonly code: NotificationHealthCheckIssueCode;
5956
+ /**
5957
+ * Short label for the finding, shown on its status chip.
5958
+ */
5959
+ readonly label?: Maybe<string>;
5960
+ /**
5961
+ * Material icon name for the finding.
5962
+ */
5963
+ readonly icon?: Maybe<string>;
5964
+ /**
5965
+ * Overrides the colour that would otherwise be derived from the issue's status.
5966
+ *
5967
+ * Rarely useful, and unset on every library default: the same code is emitted at different
5968
+ * severities depending on what was found (a recent delivery failure is an error when permanent and
5969
+ * a warning when temporary), so the status is the more accurate source.
5970
+ */
5971
+ readonly color?: Maybe<DbxThemeColor>;
5972
+ }
5973
+ /**
5974
+ * A fully resolved presentation for one finding.
5975
+ */
5976
+ interface DbxFirebaseNotificationHealthCheckIssuePresentation {
5977
+ readonly label: string;
5978
+ readonly icon: string;
5979
+ readonly color: DbxThemeColor;
5980
+ }
5981
+ /**
5982
+ * App-level tuning for the notification delivery health check UI.
5983
+ *
5984
+ * These windows are ENFORCED BY THE SERVER; the client only counts down to them so it can disable an
5985
+ * action instead of letting the user trigger a call that comes back as an error. So every value here
5986
+ * must match what the server was configured with — declare it once in a package both sides import
5987
+ * rather than writing the number down twice, or the UI will offer a test message the server rejects.
5988
+ */
5989
+ declare abstract class DbxFirebaseNotificationHealthCheckConfig {
5990
+ /**
5991
+ * How long a user must wait between test messages on a single delivery method.
5992
+ *
5993
+ * Defaults to {@link DEFAULT_NOTIFICATION_USER_HEALTH_CHECK_PROBE_THROTTLE_MINUTES}.
5994
+ */
5995
+ abstract readonly probeThrottleMinutes?: Maybe<Minutes>;
5996
+ /**
5997
+ * How long a user must wait between health check runs.
5998
+ *
5999
+ * Defaults to {@link DEFAULT_NOTIFICATION_USER_HEALTH_CHECK_THROTTLE_MINUTES}.
6000
+ */
6001
+ abstract readonly runThrottleMinutes?: Maybe<Minutes>;
6002
+ /**
6003
+ * How long the client must wait between verifications of an in-flight test message.
6004
+ *
6005
+ * Defaults to {@link DEFAULT_NOTIFICATION_USER_HEALTH_CHECK_VERIFY_THROTTLE_SECONDS}. This is also
6006
+ * the cadence the client polls at, so it must match the server's window: pace faster and every other
6007
+ * poll comes back rejected.
6008
+ */
6009
+ abstract readonly verifyThrottleSeconds?: Maybe<Seconds>;
6010
+ /**
6011
+ * How long to keep watching a test message before giving up on it.
6012
+ *
6013
+ * Defaults to {@link DEFAULT_NOTIFICATION_HEALTH_CHECK_PROBE_WATCH_MINUTES}. Purely a client-side
6014
+ * stop: a provider that never records an outcome would otherwise be polled for as long as the page
6015
+ * stays open. Once it passes, the probe is left pending and the next full run settles it.
6016
+ */
6017
+ abstract readonly probeWatchMinutes?: Maybe<Minutes>;
6018
+ }
6019
+ /**
6020
+ * How long the client keeps watching an in-flight test message before giving up on it.
6021
+ *
6022
+ * Comfortably longer than a provider takes to record a delivery outcome — the point is to stop polling
6023
+ * a provider that is never going to answer, not to impose a deadline of the client's own.
6024
+ */
6025
+ declare const DEFAULT_NOTIFICATION_HEALTH_CHECK_PROBE_WATCH_MINUTES: Minutes;
6026
+ /**
6027
+ * Configuration for the {@link DbxFirebaseNotificationHealthCheckPresentationService}.
6028
+ */
6029
+ declare abstract class DbxFirebaseNotificationHealthCheckPresentationServiceConfig {
6030
+ /**
6031
+ * App-specific entries to register, layered over the library defaults.
6032
+ */
6033
+ abstract readonly entries?: Maybe<ArrayOrValue<DbxFirebaseNotificationHealthCheckPresentationEntry>>;
6034
+ /**
6035
+ * Whether to register the library's default entries. Defaults to true.
6036
+ */
6037
+ abstract readonly registerDefaultEntries?: Maybe<boolean>;
6038
+ }
6039
+ /**
6040
+ * Colour for each health check status.
6041
+ *
6042
+ * `WARNING` and `ERROR` deliberately share `warn` — the palette has no distinct error tone — so they
6043
+ * are told apart by their icons instead.
6044
+ */
6045
+ declare const NOTIFICATION_HEALTH_CHECK_STATUS_COLORS: Record<NotificationHealthCheckStatus, DbxThemeColor>;
6046
+ /**
6047
+ * Icon for each health check status. Also what distinguishes a warning from an error.
6048
+ */
6049
+ declare const NOTIFICATION_HEALTH_CHECK_STATUS_ICONS: Record<NotificationHealthCheckStatus, string>;
6050
+ /**
6051
+ * Human-readable label for each health check status.
6052
+ *
6053
+ * Used as the chip label for an issue code with no registered entry.
6054
+ */
6055
+ declare const NOTIFICATION_HEALTH_CHECK_STATUS_LABELS: Record<NotificationHealthCheckStatus, string>;
6056
+ /**
6057
+ * Human-readable label for each delivery method.
6058
+ */
6059
+ declare const NOTIFICATION_DELIVERY_METHOD_LABELS: Record<NotificationDeliveryMethod, string>;
6060
+ /**
6061
+ * Icon for each delivery method.
6062
+ */
6063
+ declare const NOTIFICATION_DELIVERY_METHOD_ICONS: Record<NotificationDeliveryMethod, string>;
6064
+ /**
6065
+ * Label for each delivery method's "send a test message" action.
6066
+ *
6067
+ * Always names what the method actually delivers — "Send Test Email", "Send Test Text Message" — rather
6068
+ * than a generic "Send Test Message", so the button says which of a user's contact details it is about
6069
+ * to send something real to.
6070
+ */
6071
+ declare const NOTIFICATION_DELIVERY_METHOD_TEST_MESSAGE_LABELS: Record<NotificationDeliveryMethod, string>;
6072
+ /**
6073
+ * Noun for what each delivery method's test message actually is, for use mid-sentence.
6074
+ *
6075
+ * Lowercase because it reads inside prose — "A test text message was sent recently."
6076
+ */
6077
+ declare const NOTIFICATION_DELIVERY_METHOD_TEST_MESSAGE_NOUNS: Record<NotificationDeliveryMethod, string>;
6078
+ /**
6079
+ * Short name for each delivery method, for a label that has to stay compact.
6080
+ *
6081
+ * Used to compose the probe chips — `Test Email Sent`, `Test Text Sent` — where the full
6082
+ * {@link NOTIFICATION_DELIVERY_METHOD_LABELS} wording would make the chip too long to scan.
6083
+ */
6084
+ declare const NOTIFICATION_DELIVERY_METHOD_SHORT_LABELS: Record<NotificationDeliveryMethod, string>;
6085
+ /**
6086
+ * What each probe lifecycle code says happened to the test message.
6087
+ *
6088
+ * The other half of the composed probe chip label — see {@link notificationHealthCheckProbeIssueLabel}.
6089
+ */
6090
+ declare const NOTIFICATION_HEALTH_CHECK_PROBE_ISSUE_OUTCOMES: Record<NotificationHealthCheckIssueCode, string>;
6091
+ /**
6092
+ * The chip label for a probe lifecycle finding, naming the delivery method it belongs to.
6093
+ *
6094
+ * Every provider emits the same probe codes, so these labels cannot be fixed strings in the presentation
6095
+ * registry the way every other code's is: the same `probeDelivered` finding should read `Test Email
6096
+ * Delivered` in the email section and `Test Text Delivered` in the text section.
6097
+ *
6098
+ * @param code - The issue code to label.
6099
+ * @param method - The delivery method whose section the finding is rendered in.
6100
+ * @returns The composed label, or undefined when the code is not a probe lifecycle code.
6101
+ */
6102
+ declare function notificationHealthCheckProbeIssueLabel(code: NotificationHealthCheckIssueCode, method: NotificationDeliveryMethod): Maybe<string>;
6103
+ /**
6104
+ * Presentation entries for every issue code the library and the Mailgun email check emit.
6105
+ *
6106
+ * None of them set a colour — see {@link DbxFirebaseNotificationHealthCheckPresentationEntry.color}.
6107
+ */
6108
+ declare const DEFAULT_NOTIFICATION_HEALTH_CHECK_PRESENTATION_ENTRIES: DbxFirebaseNotificationHealthCheckPresentationEntry[];
6109
+
6110
+ /**
6111
+ * Registry of presentation metadata for notification health check findings.
6112
+ *
6113
+ * Health check issue codes are open-ended, so this maps a code to a label and an icon. An
6114
+ * unregistered code is not an error — it falls back to a presentation derived from the issue's
6115
+ * status, and the issue's own `m`/`f` strings carry the meaning either way.
6116
+ *
6117
+ * Apps extend the table by supplying a {@link DbxFirebaseNotificationHealthCheckPresentationServiceConfig}
6118
+ * through `provideDbxFirebaseNotifications({ healthCheckPresentation })`.
6119
+ */
6120
+ declare class DbxFirebaseNotificationHealthCheckPresentationService {
6121
+ private readonly _config;
6122
+ private readonly _entries;
4684
6123
  constructor();
4685
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationUserDocumentStoreDirective, never>;
4686
- static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseNotificationUserDocumentStoreDirective, "[dbxFirebaseNotificationUserDocument]", never, {}, {}, never, never, true, never>;
6124
+ /**
6125
+ * Registers presentation entries, overriding any already registered for the same code by default.
6126
+ *
6127
+ * @param entries - The entries to register.
6128
+ * @param override - Whether to replace an existing entry for the same code. Defaults to true.
6129
+ */
6130
+ register(entries: ArrayOrValue<DbxFirebaseNotificationHealthCheckPresentationEntry>, override?: boolean): void;
6131
+ /**
6132
+ * The entry registered for an issue code, if any.
6133
+ *
6134
+ * @param code - The issue code to look up.
6135
+ * @returns The registered entry, or undefined when the code has none.
6136
+ */
6137
+ entryForCode(code: NotificationHealthCheckIssueCode): Maybe<DbxFirebaseNotificationHealthCheckPresentationEntry>;
6138
+ /**
6139
+ * Resolves how to present a single finding.
6140
+ *
6141
+ * Pass the delivery method whose section the finding is rendered in to get a probe label that names
6142
+ * it — `Test Email Sent` rather than `Test Sent`. Every provider emits the same probe codes, so that
6143
+ * is the one label a registry entry cannot supply on its own.
6144
+ *
6145
+ * @param issue - The finding to present.
6146
+ * @param method - The delivery method the finding belongs to, when it belongs to one.
6147
+ * @returns The label, icon, and colour to render it with.
6148
+ */
6149
+ presentationForIssue(issue: NotificationHealthCheckIssue, method?: Maybe<NotificationDeliveryMethod>): DbxFirebaseNotificationHealthCheckIssuePresentation;
6150
+ /**
6151
+ * @param status - The status to colour.
6152
+ * @returns The theme colour for the status.
6153
+ */
6154
+ colorForStatus(status: NotificationHealthCheckStatus): DbxThemeColor;
6155
+ /**
6156
+ * @param status - The status to find an icon for.
6157
+ * @returns The icon for the status.
6158
+ */
6159
+ iconForStatus(status: NotificationHealthCheckStatus): string;
6160
+ /**
6161
+ * @param status - The status to label.
6162
+ * @returns The human-readable label for the status.
6163
+ */
6164
+ labelForStatus(status: NotificationHealthCheckStatus): string;
6165
+ /**
6166
+ * @param method - The delivery method to label.
6167
+ * @returns The human-readable label for the delivery method.
6168
+ */
6169
+ labelForDeliveryMethod(method: NotificationDeliveryMethod): string;
6170
+ /**
6171
+ * @param method - The delivery method to find an icon for.
6172
+ * @returns The icon for the delivery method.
6173
+ */
6174
+ iconForDeliveryMethod(method: NotificationDeliveryMethod): string;
6175
+ /**
6176
+ * @param method - The delivery method whose test message action is being labelled.
6177
+ * @returns The label for the method's "send a test message" action, naming what it sends.
6178
+ */
6179
+ testMessageLabelForDeliveryMethod(method: NotificationDeliveryMethod): string;
6180
+ /**
6181
+ * @param method - The delivery method whose test message is being described.
6182
+ * @returns The lowercase noun for the method's test message, for use mid-sentence.
6183
+ */
6184
+ testMessageNounForDeliveryMethod(method: NotificationDeliveryMethod): string;
6185
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseNotificationHealthCheckPresentationService, never>;
6186
+ static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirebaseNotificationHealthCheckPresentationService>;
4687
6187
  }
4688
6188
 
4689
6189
  /**
@@ -4750,6 +6250,22 @@ interface ProvideDbxFirebaseNotificationsConfig {
4750
6250
  * If false, will not register anything.
4751
6251
  */
4752
6252
  readonly defaultNotificationItemWidget?: DbxWidgetEntry['componentClass'] | false;
6253
+ /**
6254
+ * App-specific presentation entries for notification health check issue codes.
6255
+ *
6256
+ * Only needed when the app or one of its delivery providers emits issue codes the library does not
6257
+ * know about. The health check UI works without this — an unregistered code falls back to a
6258
+ * presentation derived from the finding's own status.
6259
+ */
6260
+ readonly healthCheckPresentation?: Maybe<DbxFirebaseNotificationHealthCheckPresentationServiceConfig>;
6261
+ /**
6262
+ * Tuning for the notification health check's throttle windows.
6263
+ *
6264
+ * Only needed when the app configured different windows on its server. The values are enforced there
6265
+ * and merely counted down here, so they must be the same on both sides — pass the app's own shared
6266
+ * constants rather than repeating the numbers.
6267
+ */
6268
+ readonly healthCheck?: Maybe<DbxFirebaseNotificationHealthCheckConfig>;
4753
6269
  }
4754
6270
  /**
4755
6271
  * Creates EnvironmentProviders that provides a DbxFirebaseNotificationTemplateService, DbxFirebaseNotificationItemWidgetService and AppNotificationTemplateTypeInfoRecordService.
@@ -5850,5 +7366,5 @@ interface ProvideDbxFirebaseConfig<T, M extends FirebaseFunctionsMap = FirebaseF
5850
7366
  */
5851
7367
  declare function provideDbxFirebase<T, M extends FirebaseFunctionsMap = FirebaseFunctionsMap>(config: ProvideDbxFirebaseConfig<T, M>): EnvironmentProviders;
5852
7368
 
5853
- export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractDbxFirebaseModelEntityWidgetDirective, AbstractDbxFirebaseNotificationItemWidgetComponent, AbstractRootSingleItemDbxFirebaseDocument, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION, DBX_FIREBASE_APP_OPTIONS_TOKEN, DBX_FIREBASE_AUTH_FLOW_TOKEN, DBX_FIREBASE_DOCUMENT_STORE_CONTEXT_STORE_TOKEN, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_MODEL_ENTITY_WITH_STORE_TOKEN, DBX_FIREBASE_STORAGEFILE_DOWNLOAD_STORAGE_ACCESSOR_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_CONFIG_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_TOKEN, DBX_FIREBASE_STORAGE_PDF_MERGE_UPLOAD_FILE_NAME, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_ANALYTICS_USER_PROPERTIES_FACTORY, DEFAULT_DBX_FIREBASE_AUTH_FLOW, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_ID_PARAM_KEY, DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_KEY_PARAM_KEY, DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_USE_PARAM_VALUE, DEFAULT_DBX_FIREBASE_MODEL_ENTITIES_COMPONENT_POPOVER_KEY, DEFAULT_DBX_FIREBASE_MODEL_HISTORY_COMPONENT_POPOVER_KEY, DEFAULT_DBX_FIREBASE_NOTIFICATION_ITEM_STORE_POPOVER_KEY, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION, DEFAULT_FIREBASE_DEVELOPMENT_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_POPUP_KEY, DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_WIDGET_PROVIDERS_TOKEN, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DEFAULT_FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE, DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY, DbxFirebaseAnalyticsUserEventsListenerService, DbxFirebaseAnalyticsUserSource, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthImpersonationDelegate, DbxFirebaseAuthLoginService, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentForgeFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective, DbxFirebaseDocumentStoreContextStore, DbxFirebaseDocumentStoreContextStoreDirective, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, DbxFirebaseDocumentStoreTwoWayKeyProvider, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseEmailForgeFormComponent, DbxFirebaseEmailRecoveryForgeFormComponent, DbxFirebaseEmulatorService, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseManageAuthProvidersComponent, DbxFirebaseModelContextService, DbxFirebaseModelEntitiesComponent, DbxFirebaseModelEntitiesDebugWidgetComponent, DbxFirebaseModelEntitiesPopoverButtonComponent, DbxFirebaseModelEntitiesPopoverComponent, DbxFirebaseModelEntitiesSource, DbxFirebaseModelEntitiesWidgetService, DbxFirebaseModelEntitiesWidgetServiceConfig, DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent, DbxFirebaseModelKeyComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModelTrackerService, DbxFirebaseModelTypeInstanceListComponent, DbxFirebaseModelTypeInstanceListViewComponent, DbxFirebaseModelTypeInstanceListViewItemComponent, DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceConfig, DbxFirebaseModelViewedEventDirective, DbxFirebaseModule, DbxFirebaseNotificationBoxCollectionStoreDirective, DbxFirebaseNotificationBoxDocumentStoreDirective, DbxFirebaseNotificationCollectionStoreDirective, DbxFirebaseNotificationDocumentStoreDirective, DbxFirebaseNotificationItemContentComponent, DbxFirebaseNotificationItemDefaultViewComponent, DbxFirebaseNotificationItemListComponent, DbxFirebaseNotificationItemListViewComponent, DbxFirebaseNotificationItemListViewItemComponent, DbxFirebaseNotificationItemStore, DbxFirebaseNotificationItemStorePopoverButtonComponent, DbxFirebaseNotificationItemStorePopoverComponent, DbxFirebaseNotificationItemViewComponent, DbxFirebaseNotificationItemWidgetService, DbxFirebaseNotificationSummaryCollectionStoreDirective, DbxFirebaseNotificationSummaryDocumentStoreDirective, DbxFirebaseNotificationTemplateService, DbxFirebaseNotificationUserCollectionStoreDirective, DbxFirebaseNotificationUserDocumentStoreDirective, DbxFirebaseParsedEmulatorsConfig, DbxFirebasePasswordResetComponent, DbxFirebasePasswordResetFormComponent, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageFileCollectionStoreDirective, DbxFirebaseStorageFileDocumentStoreDirective, DbxFirebaseStorageFileDownloadButtonComponent, DbxFirebaseStorageFileDownloadService, DbxFirebaseStorageFileDownloadStorage, DbxFirebaseStorageFileGroupDocumentStoreDirective, DbxFirebaseStorageFileUploadActionHandlerDirective, DbxFirebaseStorageFileUploadInitializeDocumentDirective, DbxFirebaseStorageFileUploadModule, DbxFirebaseStorageFileUploadStore, DbxFirebaseStorageFileUploadStoreDirective, DbxFirebaseStorageFileUploadSyncDirective, DbxFirebaseStoragePdfMergeUploadSyncDirective, DbxFirebaseStorageService, DbxFirebaseSystemStateCollectionStoreDirective, DbxFirebaseSystemStateDocumentStoreDirective, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, FIREBASE_APP_CHECK_TOKEN, FIREBASE_APP_TOKEN, FIREBASE_AUTH_TOKEN, FIREBASE_FIRESTORE_TOKEN, FIREBASE_FUNCTIONS_TOKEN, FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE_PREFIX, FIREBASE_PROVIDER_ID_TO_LOGIN_METHOD_TYPE_MAP, FIREBASE_STORAGE_TOKEN, FlatFirestoreModelKeyPipe, IMPORTS_AND_EXPORTS, LOGIN_METHOD_TYPE_TO_FIREBASE_PROVIDER_ID_MAP, NotificationBoxCollectionStore, NotificationBoxDocumentStore, NotificationCollectionStore, NotificationDocumentStore, NotificationSummaryCollectionStore, NotificationSummaryDocumentStore, NotificationUserCollectionStore, NotificationUserDocumentStore, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, StorageFileCollectionStore, StorageFileDocumentStore, StorageFileGroupDocumentStore, StorageFileUploadFilesError, SystemStateCollectionStore, SystemStateDocumentStore, TwoWayFlatFirestoreModelKeyPipe, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, createDbxFirebaseAppCheck, createDbxFirebaseAuth, createDbxFirebaseFirestore, createDbxFirebaseFunctions, createDbxFirebaseStorage, dbxFirebaseAuthContextInfo, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseDocumentStoreContextModelEntitiesSourceFactory, dbxFirebaseIdRouteParamRedirect, dbxFirebaseInContextFirebaseModelServiceInstance, dbxFirebaseInContextFirebaseModelServiceInstanceFactory, dbxFirebaseKeyRouteParamRedirect, dbxFirebaseModelContextServiceInfoInstanceFactory, dbxFirebaseModelEntityWidgetInjectionConfigFactory, dbxFirebaseModelTypesServiceInstance, dbxFirebaseModelTypesServiceInstancePairForKeysFactory, dbxFirebaseSourceSelectLoadSource, dbxFirebaseStorageFileDownloadServiceCustomSourceFromObs, dbxFirebaseStorageFileImageCompressionFileModifier, dbxFirebaseStorageProvidersContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, dbxWidgetTypeForNotificationTemplateType, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultDbxFirebaseStorageFileDownloadStorageAccessorFactory, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, firebaseAuthState, firebaseAuthTokenFromUser, firebaseCollectionStoreCreateFunction, firebaseCollectionStoreCrudFunction, firebaseContextServiceEntityMap, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreInvokeFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, firebaseIdToken, firebaseProviderIdToLoginMethodType, isDbxFirebaseModelEntityWithStore, isStandaloneWebApp, linkDocumentStoreToParentContextStores, loginMethodTypeToFirebaseProviderId, modelDoesNotExistError, parseDbxFirebaseEmulatorsConfig, provideDbxFirebase, provideDbxFirebaseAnalyticsUserEventsListenerService, provideDbxFirebaseApp, provideDbxFirebaseAuth, provideDbxFirebaseAuthImpersonation, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDevelopment, provideDbxFirebaseDocumentStoreContextStore, provideDbxFirebaseDocumentStoreDirective, provideDbxFirebaseDocumentStoreTwoWayKeyProvider, provideDbxFirebaseFunctions, provideDbxFirebaseLogin, provideDbxFirebaseModelContextService, provideDbxFirebaseModelEntitiesWidgetService, provideDbxFirebaseNotifications, provideDbxFirebaseStorageFileService, provideDbxFirestoreCollection, provideNotificationFirestoreCollections, provideStorageFileFirestoreCollections, provideSystemStateFirestoreCollections, providedDbxFirebaseStorage, readDbxAnalyticsUserPropertiesFromAuthUserInfo, readValueFromIdToken, resolveDbxFirebaseAuthFlow, setParentStoreEffect, stateFromTokenForLoggedInUserFunction, storageFileUploadFiles, storageFileUploadHandler };
5854
- export type { AuthRolesObsWithClaimsServiceConfig, AuthUserInfo, AuthUserStateObsFunction, CreateDbxFirebaseAppCheckParams, CreateDbxFirebaseAuthParams, CreateDbxFirebaseFirestoreParams, CreateDbxFirebaseFunctionsParams, CreateDbxFirebaseStorageParams, DbxFirebaseAnalyticsUserPropertiesFactory, DbxFirebaseAppCheckConfig, DbxFirebaseAppOptions, DbxFirebaseAuthContextInfo, DbxFirebaseAuthFlow, DbxFirebaseAuthLoginPasswordConfig, DbxFirebaseAuthLoginProvider, DbxFirebaseAuthLoginProviderAssets, DbxFirebaseCollectionChangeTrigger, DbxFirebaseCollectionChangeTriggerFunction, DbxFirebaseCollectionChangeTriggerInstanceConfig, DbxFirebaseCollectionChangeWatcher, DbxFirebaseCollectionChangeWatcherEvent, DbxFirebaseCollectionChangeWatcherInstance, DbxFirebaseCollectionChangeWatcherTriggerMode, DbxFirebaseCollectionHasChangeDirectiveMode, DbxFirebaseCollectionLoader, DbxFirebaseCollectionLoaderAccessor, DbxFirebaseCollectionLoaderAccessorWithAccumulator, DbxFirebaseCollectionLoaderInstanceData, DbxFirebaseCollectionLoaderInstanceInitConfig, DbxFirebaseCollectionLoaderWithAccumulator, DbxFirebaseCollectionMode, DbxFirebaseCollectionStore, DbxFirebaseCollectionStoreContextState, DbxFirebaseCollectionStoreCreateFunction, DbxFirebaseCollectionStoreCrudFunction, DbxFirebaseCollectionWithParentStore, DbxFirebaseCollectionWithParentStoreContextState, DbxFirebaseCompletePasswordResetInput, DbxFirebaseComponentStoreSetParentEffectFunction, DbxFirebaseComponentStoreWithParent, DbxFirebaseComponentStoreWithParentContextState, DbxFirebaseComponentStoreWithParentSetParentEffectFunction, DbxFirebaseComponentStoreWithParentSetParentSourceModeFunction, DbxFirebaseComponentStoreWithParentSetParentStoreEffectFunction, DbxFirebaseComponentStoreWithParentSourceMode, DbxFirebaseDevelopmentPopupContentFormInput, DbxFirebaseDevelopmentPopupContentFormValue, DbxFirebaseDevelopmentWidgetEntry, DbxFirebaseDocumentLoader, DbxFirebaseDocumentLoaderInstanceInitConfig, DbxFirebaseDocumentReadOnlyStore, DbxFirebaseDocumentStore, DbxFirebaseDocumentStoreContextState, DbxFirebaseDocumentStoreContextStoreEntry, DbxFirebaseDocumentStoreContextStoreEntryNumber, DbxFirebaseDocumentStoreContextStoreEntryWithIdentity, DbxFirebaseDocumentStoreContextStoreState, DbxFirebaseDocumentStoreCreateFunction, DbxFirebaseDocumentStoreCrudFunction, DbxFirebaseDocumentStoreFunction, DbxFirebaseDocumentStoreFunctionParams, DbxFirebaseDocumentStoreFunctionParamsInput, DbxFirebaseDocumentWithParentStore, DbxFirebaseDocumentWithParentStoreContextState, DbxFirebaseEmailFormConfig, DbxFirebaseEmailFormValue, DbxFirebaseEmailRecoveryFormValue, DbxFirebaseEmulatorConfig, DbxFirebaseEmulatorsConfig, DbxFirebaseEnvironmentOptions, DbxFirebaseIdRouteParamRedirect, DbxFirebaseIdRouteParamRedirectInstance, DbxFirebaseInContextFirebaseModelInfoServiceInstance, DbxFirebaseInContextFirebaseModelRolesServiceInstance, DbxFirebaseInContextFirebaseModelServiceInstance, DbxFirebaseInContextFirebaseModelServiceInstanceFactory, DbxFirebaseLoginButtonConfig, DbxFirebaseLoginButtonInjectionData, DbxFirebaseLoginEmailContentComponentConfig, DbxFirebaseLoginEmailContentMode, DbxFirebaseLoginListItemInjectionComponentConfig, DbxFirebaseLoginMode, DbxFirebaseModelContextServiceFactory, DbxFirebaseModelContextServiceInfoInstanceFactory, DbxFirebaseModelContextServiceInfoInstanceFactoryConfig, DbxFirebaseModelDisplayInfo, DbxFirebaseModelEntitiesPopoverButtonConfig, DbxFirebaseModelEntitiesPopoverConfig, DbxFirebaseModelEntitiesPopoverConfigWithoutOrigin, DbxFirebaseModelEntitiesWidgetEntry, DbxFirebaseModelEntitiesWidgetInjectionConfig, DbxFirebaseModelEntitiesWidgetInjectionConfigFactory, DbxFirebaseModelEntitiesWidgetServiceConfigFactory, DbxFirebaseModelEntity, DbxFirebaseModelEntityWithKey, DbxFirebaseModelEntityWithKeyAndStore, DbxFirebaseModelEntityWithStore, DbxFirebaseModelHistoryPopoverButtonConfig, DbxFirebaseModelHistoryPopoverConfig, DbxFirebaseModelHistoryPopoverConfigWithoutOrigin, DbxFirebaseModelTrackerFilterItem, DbxFirebaseModelTrackerHistoryFilter, DbxFirebaseModelTypeInfo, DbxFirebaseModelTypeInstanceListItem, DbxFirebaseModelTypesMap, DbxFirebaseModelTypesServiceEntry, DbxFirebaseModelTypesServiceInstance, DbxFirebaseModelTypesServiceInstancePair, DbxFirebaseModelTypesServiceInstancePairForKeysFactory, DbxFirebaseNotificationItemStorePopoverButtonConfig, DbxFirebaseNotificationItemStorePopoverParams, DbxFirebaseNotificationItemStoreState, DbxFirebaseNotificationItemWidgetEntry, DbxFirebaseNotificationItemWidgetEntryRegistration, DbxFirebasePasswordResetFormConfig, DbxFirebasePasswordResetFormValue, DbxFirebaseResolvedAuthFlow, DbxFirebaseSourceSelectLoadSourceConfig, DbxFirebaseStorageContextConfigFactory, DbxFirebaseStorageFileDownloadButtonConfig, DbxFirebaseStorageFileDownloadButtonSource, DbxFirebaseStorageFileDownloadDetails, DbxFirebaseStorageFileDownloadServiceCustomSource, DbxFirebaseStorageFileDownloadServiceCustomSourceDownloadFunction, DbxFirebaseStorageFileDownloadUrlPair, DbxFirebaseStorageFileDownloadUrlPairString, DbxFirebaseStorageFileDownloadUrlPairsRecord, DbxFirebaseStorageFileDownloadUserCache, DbxFirebaseStorageFileImageCompressionFileModifierConfig, DbxFirebaseStorageFileImageCompressionLogger, DbxFirebaseStorageFileUploadFileModifier, DbxFirebaseStorageFileUploadStoreAllowedTypes, DbxFirebaseStorageFileUploadStoreFileProgress, DbxFirebaseStorageFileUploadStoreState, DbxFirebaseStorageFileUploadStoreUploadStage, DbxLimitedFirebaseDocumentLoader, DefaultDbxFirebaseAuthServiceDelegateWithClaimsServiceConfig, FirebaseDocumentStoreFunctionConfig, FirebaseLoginMethodCategory, FirebaseLoginMethodType, KnownFirebaseLoginMethodCategory, KnownFirebaseLoginMethodType, NotificationItemWithSelection, ProvideDbxFirebaseAppConfig, ProvideDbxFirebaseAuthConfig, ProvideDbxFirebaseAuthImpersonationConfig, ProvideDbxFirebaseConfig, ProvideDbxFirebaseDevelopmentConfig, ProvideDbxFirebaseFirestoreCollectionConfig, ProvideDbxFirebaseFunctionsConfig, ProvideDbxFirebaseLoginConfig, ProvideDbxFirebaseModelContextServiceConfig, ProvideDbxFirebaseModelEntitiesWidgetServiceConfig, ProvideDbxFirebaseNotificationsConfig, ProvideDbxFirebaseStorageConfig, ScheduledFunctionDevelopmentFirebaseFunctionListEntryWithSelection, StateFromTokenFunction, StorageFileUploadConfig, StorageFileUploadConfigFactory, StorageFileUploadConfigOptions, StorageFileUploadFilesEvent, StorageFileUploadFilesFinalFileResult, StorageFileUploadFilesFinalResult, StorageFileUploadFilesInput, StorageFileUploadFilesInstance, StorageFileUploadHandler, StorageFileUploadHandlerConfig, StorageFileUploadHandlerFunction, StorageFileUploadHandlerInstance };
7369
+ export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractDbxFirebaseModelEntityWidgetDirective, AbstractDbxFirebaseNotificationItemWidgetComponent, AbstractRootSingleItemDbxFirebaseDocument, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION, DBX_FIREBASE_APP_OPTIONS_TOKEN, DBX_FIREBASE_AUTH_FLOW_TOKEN, DBX_FIREBASE_DOCUMENT_STORE_CONTEXT_STORE_TOKEN, DBX_FIREBASE_EXTERNAL_CONNECTION_CALCOM_PROVIDER, DBX_FIREBASE_EXTERNAL_CONNECTION_DISCORD_PROVIDER, DBX_FIREBASE_EXTERNAL_CONNECTION_ZOHO_PROVIDER, DBX_FIREBASE_EXTERNAL_CONNECTION_ZOOM_PROVIDER, DBX_FIREBASE_KNOWN_EXTERNAL_CONNECTION_PROVIDERS, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_MODEL_ENTITY_WITH_STORE_TOKEN, DBX_FIREBASE_STORAGEFILE_DOWNLOAD_STORAGE_ACCESSOR_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_CONFIG_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_TOKEN, DBX_FIREBASE_STORAGE_PDF_MERGE_UPLOAD_FILE_NAME, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_ANALYTICS_USER_PROPERTIES_FACTORY, DEFAULT_DBX_FIREBASE_AUTH_FLOW, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_ID_PARAM_KEY, DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_KEY_PARAM_KEY, DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_USE_PARAM_VALUE, DEFAULT_DBX_FIREBASE_MODEL_ENTITIES_COMPONENT_POPOVER_KEY, DEFAULT_DBX_FIREBASE_MODEL_HISTORY_COMPONENT_POPOVER_KEY, DEFAULT_DBX_FIREBASE_NOTIFICATION_ITEM_STORE_POPOVER_KEY, DEFAULT_EXTERNAL_CONNECTION_AUTHORIZE_PATH_FACTORY, DEFAULT_EXTERNAL_CONNECTION_NAVIGATE_FUNCTION, DEFAULT_EXTERNAL_CONNECTION_NAVIGATE_TIMEOUT, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION, DEFAULT_FIREBASE_DEVELOPMENT_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_POPUP_KEY, DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_WIDGET_PROVIDERS_TOKEN, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DEFAULT_FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE, DEFAULT_NOTIFICATION_HEALTH_CHECK_PRESENTATION_ENTRIES, DEFAULT_NOTIFICATION_HEALTH_CHECK_PROBE_WATCH_MINUTES, DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY, DbxFirebaseAnalyticsUserEventsListenerService, DbxFirebaseAnalyticsUserSource, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthImpersonationDelegate, DbxFirebaseAuthLoginService, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentForgeFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective, DbxFirebaseDocumentStoreContextStore, DbxFirebaseDocumentStoreContextStoreDirective, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, DbxFirebaseDocumentStoreTwoWayKeyProvider, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseEmailForgeFormComponent, DbxFirebaseEmailRecoveryForgeFormComponent, DbxFirebaseEmulatorService, DbxFirebaseExternalConnectionListComponent, DbxFirebaseExternalConnectionListViewComponent, DbxFirebaseExternalConnectionListViewItemComponent, DbxFirebaseExternalConnectionService, DbxFirebaseExternalConnectionsComponent, DbxFirebaseExternalConnectionsConfig, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseManageAuthProvidersComponent, DbxFirebaseModelContextService, DbxFirebaseModelEntitiesComponent, DbxFirebaseModelEntitiesDebugWidgetComponent, DbxFirebaseModelEntitiesPopoverButtonComponent, DbxFirebaseModelEntitiesPopoverComponent, DbxFirebaseModelEntitiesSource, DbxFirebaseModelEntitiesWidgetService, DbxFirebaseModelEntitiesWidgetServiceConfig, DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent, DbxFirebaseModelKeyComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModelTrackerService, DbxFirebaseModelTypeInstanceListComponent, DbxFirebaseModelTypeInstanceListViewComponent, DbxFirebaseModelTypeInstanceListViewItemComponent, DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceConfig, DbxFirebaseModelViewedEventDirective, DbxFirebaseModule, DbxFirebaseNotificationBoxCollectionStoreDirective, DbxFirebaseNotificationBoxDocumentStoreDirective, DbxFirebaseNotificationCollectionStoreDirective, DbxFirebaseNotificationDocumentStoreDirective, DbxFirebaseNotificationHealthCheckComponent, DbxFirebaseNotificationHealthCheckConfig, DbxFirebaseNotificationHealthCheckDialogButtonComponent, DbxFirebaseNotificationHealthCheckDialogComponent, DbxFirebaseNotificationHealthCheckIssueComponent, DbxFirebaseNotificationHealthCheckMethodComponent, DbxFirebaseNotificationHealthCheckPresentationService, DbxFirebaseNotificationHealthCheckPresentationServiceConfig, DbxFirebaseNotificationHealthCheckViewComponent, DbxFirebaseNotificationItemContentComponent, DbxFirebaseNotificationItemDefaultViewComponent, DbxFirebaseNotificationItemListComponent, DbxFirebaseNotificationItemListViewComponent, DbxFirebaseNotificationItemListViewItemComponent, DbxFirebaseNotificationItemStore, DbxFirebaseNotificationItemStorePopoverButtonComponent, DbxFirebaseNotificationItemStorePopoverComponent, DbxFirebaseNotificationItemViewComponent, DbxFirebaseNotificationItemWidgetService, DbxFirebaseNotificationSummaryCollectionStoreDirective, DbxFirebaseNotificationSummaryDocumentStoreDirective, DbxFirebaseNotificationTemplateService, DbxFirebaseNotificationUserCollectionStoreDirective, DbxFirebaseNotificationUserDocumentStoreDirective, DbxFirebaseNotificationUserHealthCheckStore, DbxFirebaseParsedEmulatorsConfig, DbxFirebasePasswordResetComponent, DbxFirebasePasswordResetFormComponent, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageFileCollectionStoreDirective, DbxFirebaseStorageFileDocumentStoreDirective, DbxFirebaseStorageFileDownloadButtonComponent, DbxFirebaseStorageFileDownloadService, DbxFirebaseStorageFileDownloadStorage, DbxFirebaseStorageFileGroupDocumentStoreDirective, DbxFirebaseStorageFileUploadActionHandlerDirective, DbxFirebaseStorageFileUploadInitializeDocumentDirective, DbxFirebaseStorageFileUploadModule, DbxFirebaseStorageFileUploadStore, DbxFirebaseStorageFileUploadStoreDirective, DbxFirebaseStorageFileUploadSyncDirective, DbxFirebaseStoragePdfMergeUploadSyncDirective, DbxFirebaseStorageService, DbxFirebaseSystemStateCollectionStoreDirective, DbxFirebaseSystemStateDocumentStoreDirective, DbxFirebaseUserExternalConnectionCollections, DbxFirebaseUserExternalConnectionDocumentStoreDirective, DbxFirebaseUserExternalConnectionsStore, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, FIREBASE_APP_CHECK_TOKEN, FIREBASE_APP_TOKEN, FIREBASE_AUTH_TOKEN, FIREBASE_FIRESTORE_TOKEN, FIREBASE_FUNCTIONS_TOKEN, FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE_PREFIX, FIREBASE_PROVIDER_ID_TO_LOGIN_METHOD_TYPE_MAP, FIREBASE_STORAGE_TOKEN, FlatFirestoreModelKeyPipe, IMPORTS_AND_EXPORTS, LOGIN_METHOD_TYPE_TO_FIREBASE_PROVIDER_ID_MAP, NOTIFICATION_DELIVERY_METHOD_ICONS, NOTIFICATION_DELIVERY_METHOD_LABELS, NOTIFICATION_DELIVERY_METHOD_SHORT_LABELS, NOTIFICATION_DELIVERY_METHOD_TEST_MESSAGE_LABELS, NOTIFICATION_DELIVERY_METHOD_TEST_MESSAGE_NOUNS, NOTIFICATION_HEALTH_CHECK_PROBE_ISSUE_OUTCOMES, NOTIFICATION_HEALTH_CHECK_STATUS_COLORS, NOTIFICATION_HEALTH_CHECK_STATUS_ICONS, NOTIFICATION_HEALTH_CHECK_STATUS_LABELS, NotificationBoxCollectionStore, NotificationBoxDocumentStore, NotificationCollectionStore, NotificationDocumentStore, NotificationSummaryCollectionStore, NotificationSummaryDocumentStore, NotificationUserCollectionStore, NotificationUserDocumentStore, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, StorageFileCollectionStore, StorageFileDocumentStore, StorageFileGroupDocumentStore, StorageFileUploadFilesError, SystemStateCollectionStore, SystemStateDocumentStore, TwoWayFlatFirestoreModelKeyPipe, UserExternalConnectionDocumentStore, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, createDbxFirebaseAppCheck, createDbxFirebaseAuth, createDbxFirebaseFirestore, createDbxFirebaseFunctions, createDbxFirebaseStorage, dbxFirebaseAuthContextInfo, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseDocumentStoreContextModelEntitiesSourceFactory, dbxFirebaseExternalConnectionProviderForEntry, dbxFirebaseExternalConnectionRowStatusForEntry, dbxFirebaseExternalConnectionRows, dbxFirebaseIdRouteParamRedirect, dbxFirebaseInContextFirebaseModelServiceInstance, dbxFirebaseInContextFirebaseModelServiceInstanceFactory, dbxFirebaseKeyRouteParamRedirect, dbxFirebaseKnownExternalConnectionProvider, dbxFirebaseModelContextServiceInfoInstanceFactory, dbxFirebaseModelEntityWidgetInjectionConfigFactory, dbxFirebaseModelTypesServiceInstance, dbxFirebaseModelTypesServiceInstancePairForKeysFactory, dbxFirebaseSourceSelectLoadSource, dbxFirebaseStorageFileDownloadServiceCustomSourceFromObs, dbxFirebaseStorageFileImageCompressionFileModifier, dbxFirebaseStorageProvidersContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, dbxWidgetTypeForNotificationTemplateType, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultDbxFirebaseStorageFileDownloadStorageAccessorFactory, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, externalConnectionsLoadingStateFromDocumentLoadingState, firebaseAuthState, firebaseAuthTokenFromUser, firebaseCollectionStoreCreateFunction, firebaseCollectionStoreCrudFunction, firebaseContextServiceEntityMap, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreInvokeFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, firebaseIdToken, firebaseProviderIdToLoginMethodType, isDbxFirebaseModelEntityWithStore, isStandaloneWebApp, linkDocumentStoreToParentContextStores, loginMethodTypeToFirebaseProviderId, modelDoesNotExistError, navigateAndWaitForPageToLeave, notificationHealthCheckProbeIssueLabel, parseDbxFirebaseEmulatorsConfig, provideDbxFirebase, provideDbxFirebaseAnalyticsUserEventsListenerService, provideDbxFirebaseApp, provideDbxFirebaseAuth, provideDbxFirebaseAuthImpersonation, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDevelopment, provideDbxFirebaseDocumentStoreContextStore, provideDbxFirebaseDocumentStoreDirective, provideDbxFirebaseDocumentStoreTwoWayKeyProvider, provideDbxFirebaseExternalConnections, provideDbxFirebaseFunctions, provideDbxFirebaseLogin, provideDbxFirebaseModelContextService, provideDbxFirebaseModelEntitiesWidgetService, provideDbxFirebaseNotifications, provideDbxFirebaseStorageFileService, provideDbxFirestoreCollection, provideNotificationFirestoreCollections, provideStorageFileFirestoreCollections, provideSystemStateFirestoreCollections, providedDbxFirebaseStorage, readDbxAnalyticsUserPropertiesFromAuthUserInfo, readValueFromIdToken, resolveDbxFirebaseAuthFlow, setParentStoreEffect, shouldCreateUserExternalConnectionForDocumentLoadingState, stateFromTokenForLoggedInUserFunction, storageFileUploadFiles, storageFileUploadHandler };
7370
+ export type { AuthRolesObsWithClaimsServiceConfig, AuthUserInfo, AuthUserStateObsFunction, CreateDbxFirebaseAppCheckParams, CreateDbxFirebaseAuthParams, CreateDbxFirebaseFirestoreParams, CreateDbxFirebaseFunctionsParams, CreateDbxFirebaseStorageParams, DbxFirebaseAnalyticsUserPropertiesFactory, DbxFirebaseAppCheckConfig, DbxFirebaseAppOptions, DbxFirebaseAuthContextInfo, DbxFirebaseAuthFlow, DbxFirebaseAuthLoginPasswordConfig, DbxFirebaseAuthLoginProvider, DbxFirebaseAuthLoginProviderAssets, DbxFirebaseCollectionChangeTrigger, DbxFirebaseCollectionChangeTriggerFunction, DbxFirebaseCollectionChangeTriggerInstanceConfig, DbxFirebaseCollectionChangeWatcher, DbxFirebaseCollectionChangeWatcherEvent, DbxFirebaseCollectionChangeWatcherInstance, DbxFirebaseCollectionChangeWatcherTriggerMode, DbxFirebaseCollectionHasChangeDirectiveMode, DbxFirebaseCollectionLoader, DbxFirebaseCollectionLoaderAccessor, DbxFirebaseCollectionLoaderAccessorWithAccumulator, DbxFirebaseCollectionLoaderInstanceData, DbxFirebaseCollectionLoaderInstanceInitConfig, DbxFirebaseCollectionLoaderWithAccumulator, DbxFirebaseCollectionMode, DbxFirebaseCollectionStore, DbxFirebaseCollectionStoreContextState, DbxFirebaseCollectionStoreCreateFunction, DbxFirebaseCollectionStoreCrudFunction, DbxFirebaseCollectionWithParentStore, DbxFirebaseCollectionWithParentStoreContextState, DbxFirebaseCompletePasswordResetInput, DbxFirebaseComponentStoreSetParentEffectFunction, DbxFirebaseComponentStoreWithParent, DbxFirebaseComponentStoreWithParentContextState, DbxFirebaseComponentStoreWithParentSetParentEffectFunction, DbxFirebaseComponentStoreWithParentSetParentSourceModeFunction, DbxFirebaseComponentStoreWithParentSetParentStoreEffectFunction, DbxFirebaseComponentStoreWithParentSourceMode, DbxFirebaseDevelopmentPopupContentFormInput, DbxFirebaseDevelopmentPopupContentFormValue, DbxFirebaseDevelopmentWidgetEntry, DbxFirebaseDocumentLoader, DbxFirebaseDocumentLoaderInstanceInitConfig, DbxFirebaseDocumentReadOnlyStore, DbxFirebaseDocumentStore, DbxFirebaseDocumentStoreContextState, DbxFirebaseDocumentStoreContextStoreEntry, DbxFirebaseDocumentStoreContextStoreEntryNumber, DbxFirebaseDocumentStoreContextStoreEntryWithIdentity, DbxFirebaseDocumentStoreContextStoreState, DbxFirebaseDocumentStoreCreateFunction, DbxFirebaseDocumentStoreCrudFunction, DbxFirebaseDocumentStoreFunction, DbxFirebaseDocumentStoreFunctionParams, DbxFirebaseDocumentStoreFunctionParamsInput, DbxFirebaseDocumentWithParentStore, DbxFirebaseDocumentWithParentStoreContextState, DbxFirebaseEmailFormConfig, DbxFirebaseEmailFormValue, DbxFirebaseEmailRecoveryFormValue, DbxFirebaseEmulatorConfig, DbxFirebaseEmulatorsConfig, DbxFirebaseEnvironmentOptions, DbxFirebaseExternalConnectionActionConfig, DbxFirebaseExternalConnectionAuthorizeState, DbxFirebaseExternalConnectionConnectContext, DbxFirebaseExternalConnectionConnectFunction, DbxFirebaseExternalConnectionListItem, DbxFirebaseExternalConnectionListItemValue, DbxFirebaseExternalConnectionMintAuthorizeStateFunction, DbxFirebaseExternalConnectionNavigateFunction, DbxFirebaseExternalConnectionProvider, DbxFirebaseExternalConnectionProviderAssets, DbxFirebaseExternalConnectionProviderEntry, DbxFirebaseExternalConnectionRow, DbxFirebaseExternalConnectionRowStatus, DbxFirebaseExternalConnectionRowsInput, DbxFirebaseIdRouteParamRedirect, DbxFirebaseIdRouteParamRedirectInstance, DbxFirebaseInContextFirebaseModelInfoServiceInstance, DbxFirebaseInContextFirebaseModelRolesServiceInstance, DbxFirebaseInContextFirebaseModelServiceInstance, DbxFirebaseInContextFirebaseModelServiceInstanceFactory, DbxFirebaseKnownExternalConnectionProviderConfig, DbxFirebaseLoginButtonConfig, DbxFirebaseLoginButtonInjectionData, DbxFirebaseLoginEmailContentComponentConfig, DbxFirebaseLoginEmailContentMode, DbxFirebaseLoginListItemInjectionComponentConfig, DbxFirebaseLoginMode, DbxFirebaseModelContextServiceFactory, DbxFirebaseModelContextServiceInfoInstanceFactory, DbxFirebaseModelContextServiceInfoInstanceFactoryConfig, DbxFirebaseModelDisplayInfo, DbxFirebaseModelEntitiesPopoverButtonConfig, DbxFirebaseModelEntitiesPopoverConfig, DbxFirebaseModelEntitiesPopoverConfigWithoutOrigin, DbxFirebaseModelEntitiesWidgetEntry, DbxFirebaseModelEntitiesWidgetInjectionConfig, DbxFirebaseModelEntitiesWidgetInjectionConfigFactory, DbxFirebaseModelEntitiesWidgetServiceConfigFactory, DbxFirebaseModelEntity, DbxFirebaseModelEntityWithKey, DbxFirebaseModelEntityWithKeyAndStore, DbxFirebaseModelEntityWithStore, DbxFirebaseModelHistoryPopoverButtonConfig, DbxFirebaseModelHistoryPopoverConfig, DbxFirebaseModelHistoryPopoverConfigWithoutOrigin, DbxFirebaseModelTrackerFilterItem, DbxFirebaseModelTrackerHistoryFilter, DbxFirebaseModelTypeInfo, DbxFirebaseModelTypeInstanceListItem, DbxFirebaseModelTypesMap, DbxFirebaseModelTypesServiceEntry, DbxFirebaseModelTypesServiceInstance, DbxFirebaseModelTypesServiceInstancePair, DbxFirebaseModelTypesServiceInstancePairForKeysFactory, DbxFirebaseNotificationHealthCheckDialogButtonComponentConfig, DbxFirebaseNotificationHealthCheckDialogComponentConfig, DbxFirebaseNotificationHealthCheckIssuePresentation, DbxFirebaseNotificationHealthCheckMethodProbeActionConfig, DbxFirebaseNotificationHealthCheckPresentationEntry, DbxFirebaseNotificationHealthCheckProbeActionMap, DbxFirebaseNotificationItemStorePopoverButtonConfig, DbxFirebaseNotificationItemStorePopoverParams, DbxFirebaseNotificationItemStoreState, DbxFirebaseNotificationItemWidgetEntry, DbxFirebaseNotificationItemWidgetEntryRegistration, DbxFirebaseNotificationUserHealthCheckProbeVerification, DbxFirebaseNotificationUserHealthCheckRunParams, DbxFirebaseNotificationUserHealthCheckStoreState, DbxFirebasePasswordResetFormConfig, DbxFirebasePasswordResetFormValue, DbxFirebaseResolvedAuthFlow, DbxFirebaseSourceSelectLoadSourceConfig, DbxFirebaseStorageContextConfigFactory, DbxFirebaseStorageFileDownloadButtonConfig, DbxFirebaseStorageFileDownloadButtonSource, DbxFirebaseStorageFileDownloadDetails, DbxFirebaseStorageFileDownloadServiceCustomSource, DbxFirebaseStorageFileDownloadServiceCustomSourceDownloadFunction, DbxFirebaseStorageFileDownloadUrlPair, DbxFirebaseStorageFileDownloadUrlPairString, DbxFirebaseStorageFileDownloadUrlPairsRecord, DbxFirebaseStorageFileDownloadUserCache, DbxFirebaseStorageFileImageCompressionFileModifierConfig, DbxFirebaseStorageFileImageCompressionLogger, DbxFirebaseStorageFileUploadFileModifier, DbxFirebaseStorageFileUploadStoreAllowedTypes, DbxFirebaseStorageFileUploadStoreFileProgress, DbxFirebaseStorageFileUploadStoreState, DbxFirebaseStorageFileUploadStoreUploadStage, DbxLimitedFirebaseDocumentLoader, DefaultDbxFirebaseAuthServiceDelegateWithClaimsServiceConfig, FirebaseDocumentStoreFunctionConfig, FirebaseLoginMethodCategory, FirebaseLoginMethodType, KnownFirebaseLoginMethodCategory, KnownFirebaseLoginMethodType, NotificationItemWithSelection, ProvideDbxFirebaseAppConfig, ProvideDbxFirebaseAuthConfig, ProvideDbxFirebaseAuthImpersonationConfig, ProvideDbxFirebaseConfig, ProvideDbxFirebaseDevelopmentConfig, ProvideDbxFirebaseExternalConnectionsConfig, ProvideDbxFirebaseFirestoreCollectionConfig, ProvideDbxFirebaseFunctionsConfig, ProvideDbxFirebaseLoginConfig, ProvideDbxFirebaseModelContextServiceConfig, ProvideDbxFirebaseModelEntitiesWidgetServiceConfig, ProvideDbxFirebaseNotificationsConfig, ProvideDbxFirebaseStorageConfig, ScheduledFunctionDevelopmentFirebaseFunctionListEntryWithSelection, StateFromTokenFunction, StorageFileUploadConfig, StorageFileUploadConfigFactory, StorageFileUploadConfigOptions, StorageFileUploadFilesEvent, StorageFileUploadFilesFinalFileResult, StorageFileUploadFilesFinalResult, StorageFileUploadFilesInput, StorageFileUploadFilesInstance, StorageFileUploadHandler, StorageFileUploadHandlerConfig, StorageFileUploadHandlerFunction, StorageFileUploadHandlerInstance };