@angular/core 19.0.0-next.8 → 19.0.0-rc.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.
Files changed (42) hide show
  1. package/fesm2022/core.mjs +21591 -19590
  2. package/fesm2022/core.mjs.map +1 -1
  3. package/fesm2022/primitives/event-dispatch.mjs +71 -47
  4. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  5. package/fesm2022/primitives/signals.mjs +8 -6
  6. package/fesm2022/primitives/signals.mjs.map +1 -1
  7. package/fesm2022/rxjs-interop.mjs +90 -10
  8. package/fesm2022/rxjs-interop.mjs.map +1 -1
  9. package/fesm2022/testing.mjs +177 -114
  10. package/fesm2022/testing.mjs.map +1 -1
  11. package/index.d.ts +591 -101
  12. package/package.json +1 -1
  13. package/primitives/event-dispatch/index.d.ts +7 -4
  14. package/primitives/signals/index.d.ts +7 -1
  15. package/rxjs-interop/index.d.ts +35 -4
  16. package/schematics/bundles/{checker-e68dd7ce.js → checker-2451e7c5.js} +2464 -1132
  17. package/schematics/bundles/{group_replacements-472b2387.js → combine_units-c52492ab.js} +1964 -2207
  18. package/schematics/bundles/{compiler_host-9a4d0c2b.js → compiler_host-f54f8309.js} +2 -2
  19. package/schematics/bundles/control-flow-migration.js +3 -3
  20. package/schematics/bundles/explicit-standalone-flag.js +31 -11
  21. package/schematics/bundles/{imports-4ac08251.js → imports-44987700.js} +1 -1
  22. package/schematics/bundles/inject-migration.js +122 -48
  23. package/schematics/bundles/{leading_space-d190b83b.js → leading_space-6e7a8ec6.js} +1 -1
  24. package/schematics/bundles/migrate_ts_type_references-ab18a7c3.js +1463 -0
  25. package/schematics/bundles/{nodes-0e7d45ca.js → ng_decorators-3ad437d2.js} +2 -15
  26. package/schematics/bundles/nodes-ffdce442.js +27 -0
  27. package/schematics/bundles/output-migration.js +7450 -0
  28. package/schematics/bundles/pending-tasks.js +5 -5
  29. package/schematics/bundles/{program-105283c5.js → program-58424797.js} +1359 -455
  30. package/schematics/bundles/{project_tsconfig_paths-e9ccccbf.js → project_tsconfig_paths-6c9cde78.js} +1 -1
  31. package/schematics/bundles/provide-initializer.js +190 -0
  32. package/schematics/bundles/route-lazy-loading.js +4 -4
  33. package/schematics/bundles/signal-input-migration.js +197 -349
  34. package/schematics/bundles/signal-queries-migration.js +462 -185
  35. package/schematics/bundles/signals.js +54 -0
  36. package/schematics/bundles/standalone-migration.js +38 -20
  37. package/schematics/collection.json +11 -0
  38. package/schematics/migrations.json +7 -1
  39. package/schematics/ng-generate/output-migration/schema.json +19 -0
  40. package/schematics/ng-generate/signal-queries-migration/schema.json +11 -0
  41. package/schematics/ng-generate/signals/schema.json +65 -0
  42. package/testing/index.d.ts +3 -1
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.0-next.8
2
+ * @license Angular v19.0.0-rc.0
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -470,7 +470,6 @@ AfterRenderHook | undefined
470
470
  ];
471
471
 
472
472
  declare class AfterRenderImpl {
473
- static readonly PHASES: readonly [AfterRenderPhase.EarlyRead, AfterRenderPhase.Write, AfterRenderPhase.MixedReadWrite, AfterRenderPhase.Read];
474
473
  private readonly ngZone;
475
474
  private readonly scheduler;
476
475
  private readonly errorHandler;
@@ -738,7 +737,12 @@ export declare const APP_ID: InjectionToken<string>;
738
737
  * The function is executed during the application bootstrap process,
739
738
  * and the needed data is available on startup.
740
739
  *
740
+ * Note that the provided initializer is run in the injection context.
741
+ *
742
+ * @deprecated from v19.0.0, use provideAppInitializer instead
743
+ *
741
744
  * @see {@link ApplicationInitStatus}
745
+ * @see {@link provideAppInitializer}
742
746
  *
743
747
  * @usageNotes
744
748
  *
@@ -747,10 +751,12 @@ export declare const APP_ID: InjectionToken<string>;
747
751
  * ### Example with NgModule-based application
748
752
  * ```
749
753
  * function initializeApp(): Promise<any> {
750
- * return new Promise((resolve, reject) => {
751
- * // Do some asynchronous stuff
752
- * resolve();
753
- * });
754
+ * const http = inject(HttpClient);
755
+ * return firstValueFrom(
756
+ * http
757
+ * .get("https://someUrl.com/api/user")
758
+ * .pipe(tap(user => { ... }))
759
+ * );
754
760
  * }
755
761
  *
756
762
  * @NgModule({
@@ -759,8 +765,8 @@ export declare const APP_ID: InjectionToken<string>;
759
765
  * bootstrap: [AppComponent],
760
766
  * providers: [{
761
767
  * provide: APP_INITIALIZER,
762
- * useFactory: () => initializeApp,
763
- * multi: true
768
+ * useValue: initializeApp,
769
+ * multi: true,
764
770
  * }]
765
771
  * })
766
772
  * export class AppModule {}
@@ -768,13 +774,13 @@ export declare const APP_ID: InjectionToken<string>;
768
774
  *
769
775
  * ### Example with standalone application
770
776
  * ```
771
- * export function initializeApp(http: HttpClient) {
772
- * return (): Promise<any> =>
773
- * firstValueFrom(
774
- * http
775
- * .get("https://someUrl.com/api/user")
776
- * .pipe(tap(user => { ... }))
777
- * );
777
+ * function initializeApp() {
778
+ * const http = inject(HttpClient);
779
+ * return firstValueFrom(
780
+ * http
781
+ * .get("https://someUrl.com/api/user")
782
+ * .pipe(tap(user => { ... }))
783
+ * );
778
784
  * }
779
785
  *
780
786
  * bootstrapApplication(App, {
@@ -782,9 +788,8 @@ export declare const APP_ID: InjectionToken<string>;
782
788
  * provideHttpClient(),
783
789
  * {
784
790
  * provide: APP_INITIALIZER,
785
- * useFactory: initializeApp,
791
+ * useValue: initializeApp,
786
792
  * multi: true,
787
- * deps: [HttpClient],
788
793
  * },
789
794
  * ],
790
795
  * });
@@ -799,44 +804,46 @@ export declare const APP_ID: InjectionToken<string>;
799
804
  *
800
805
  * ### Example with NgModule-based application
801
806
  * ```
802
- * function initializeAppFactory(httpClient: HttpClient): () => Observable<any> {
803
- * return () => httpClient.get("https://someUrl.com/api/user")
804
- * .pipe(
805
- * tap(user => { ... })
806
- * );
807
- * }
807
+ * function initializeApp() {
808
+ * const http = inject(HttpClient);
809
+ * return firstValueFrom(
810
+ * http
811
+ * .get("https://someUrl.com/api/user")
812
+ * .pipe(tap(user => { ... }))
813
+ * );
814
+ * }
808
815
  *
809
- * @NgModule({
810
- * imports: [BrowserModule, HttpClientModule],
811
- * declarations: [AppComponent],
812
- * bootstrap: [AppComponent],
813
- * providers: [{
814
- * provide: APP_INITIALIZER,
815
- * useFactory: initializeAppFactory,
816
- * deps: [HttpClient],
817
- * multi: true
818
- * }]
819
- * })
820
- * export class AppModule {}
816
+ * @NgModule({
817
+ * imports: [BrowserModule, HttpClientModule],
818
+ * declarations: [AppComponent],
819
+ * bootstrap: [AppComponent],
820
+ * providers: [{
821
+ * provide: APP_INITIALIZER,
822
+ * useValue: initializeApp,
823
+ * multi: true,
824
+ * }]
825
+ * })
826
+ * export class AppModule {}
821
827
  * ```
822
828
  *
823
829
  * ### Example with standalone application
824
830
  * ```
825
- * function initializeAppFactory(httpClient: HttpClient): () => Observable<any> {
826
- * return () => httpClient.get("https://someUrl.com/api/user")
827
- * .pipe(
828
- * tap(user => { ... })
829
- * );
830
- * }
831
+ * function initializeApp() {
832
+ * const http = inject(HttpClient);
833
+ * return firstValueFrom(
834
+ * http
835
+ * .get("https://someUrl.com/api/user")
836
+ * .pipe(tap(user => { ... }))
837
+ * );
838
+ * }
831
839
  *
832
840
  * bootstrapApplication(App, {
833
841
  * providers: [
834
842
  * provideHttpClient(),
835
843
  * {
836
844
  * provide: APP_INITIALIZER,
837
- * useFactory: initializeAppFactory,
845
+ * useValue: initializeApp,
838
846
  * multi: true,
839
- * deps: [HttpClient],
840
847
  * },
841
848
  * ],
842
849
  * });
@@ -870,6 +877,7 @@ export declare class ApplicationInitStatus {
870
877
  readonly done = false;
871
878
  readonly donePromise: Promise<any>;
872
879
  private readonly appInits;
880
+ private readonly injector;
873
881
  constructor();
874
882
  static ɵfac: i0.ɵɵFactoryDeclaration<ApplicationInitStatus, never>;
875
883
  static ɵprov: i0.ɵɵInjectableDeclaration<ApplicationInitStatus>;
@@ -1170,7 +1178,6 @@ export declare class ApplicationRef {
1170
1178
  * @param component Component to {@link ChangeDetectorRef#markForCheck mark for check}.
1171
1179
  *
1172
1180
  * @publicApi
1173
- * @globalApi ng
1174
1181
  */
1175
1182
  declare function applyChanges(component: {}): void;
1176
1183
 
@@ -2391,10 +2398,12 @@ export declare interface ContentChildFunction {
2391
2398
  <LocatorT>(locator: ProviderToken<LocatorT> | string, opts?: {
2392
2399
  descendants?: boolean;
2393
2400
  read?: undefined;
2401
+ debugName?: string;
2394
2402
  }): Signal<LocatorT | undefined>;
2395
2403
  <LocatorT, ReadT>(locator: ProviderToken<LocatorT> | string, opts: {
2396
2404
  descendants?: boolean;
2397
2405
  read: ProviderToken<ReadT>;
2406
+ debugName?: string;
2398
2407
  }): Signal<ReadT | undefined>;
2399
2408
  /**
2400
2409
  * Initializes a content child query that is always expected to match.
@@ -2403,10 +2412,12 @@ export declare interface ContentChildFunction {
2403
2412
  <LocatorT>(locator: ProviderToken<LocatorT> | string, opts?: {
2404
2413
  descendants?: boolean;
2405
2414
  read?: undefined;
2415
+ debugName?: string;
2406
2416
  }): Signal<LocatorT>;
2407
2417
  <LocatorT, ReadT>(locator: ProviderToken<LocatorT> | string, opts: {
2408
2418
  descendants?: boolean;
2409
2419
  read: ProviderToken<ReadT>;
2420
+ debugName?: string;
2410
2421
  }): Signal<ReadT>;
2411
2422
  };
2412
2423
  }
@@ -2432,11 +2443,13 @@ export declare const ContentChildren: ContentChildrenDecorator;
2432
2443
  export declare function contentChildren<LocatorT>(locator: ProviderToken<LocatorT> | string, opts?: {
2433
2444
  descendants?: boolean;
2434
2445
  read?: undefined;
2446
+ debugName?: string;
2435
2447
  }): Signal<ReadonlyArray<LocatorT>>;
2436
2448
 
2437
2449
  export declare function contentChildren<LocatorT, ReadT>(locator: ProviderToken<LocatorT> | string, opts: {
2438
2450
  descendants?: boolean;
2439
2451
  read: ProviderToken<ReadT>;
2452
+ debugName?: string;
2440
2453
  }): Signal<ReadonlyArray<ReadT>>;
2441
2454
 
2442
2455
  /**
@@ -2600,6 +2613,10 @@ export declare interface CreateComputedOptions<T> {
2600
2613
  * A comparison function which defines equality for computed values.
2601
2614
  */
2602
2615
  equal?: ValueEqualityFn<T>;
2616
+ /**
2617
+ * A debug name for the computed signal. Used in Angular DevTools to identify the signal.
2618
+ */
2619
+ debugName?: string;
2603
2620
  }
2604
2621
 
2605
2622
  /**
@@ -2631,6 +2648,10 @@ export declare interface CreateEffectOptions {
2631
2648
  * @deprecated no longer required, signal writes are allowed by default.
2632
2649
  */
2633
2650
  allowSignalWrites?: boolean;
2651
+ /**
2652
+ * A debug name for the effect. Used in Angular DevTools to identify the effect.
2653
+ */
2654
+ debugName?: string;
2634
2655
  }
2635
2656
 
2636
2657
  /**
@@ -2694,6 +2715,10 @@ export declare interface CreateSignalOptions<T> {
2694
2715
  * A comparison function which defines equality for signal values.
2695
2716
  */
2696
2717
  equal?: ValueEqualityFn<T>;
2718
+ /**
2719
+ * A debug name for the signal. Used in Angular DevTools to identify the signal.
2720
+ */
2721
+ debugName?: string;
2697
2722
  }
2698
2723
 
2699
2724
  /**
@@ -3012,6 +3037,38 @@ export declare class DefaultIterableDiffer<V> implements IterableDiffer<V>, Iter
3012
3037
  private _addToRemovals;
3013
3038
  }
3014
3039
 
3040
+ declare const DEFER_BLOCK_ID = "di";
3041
+
3042
+ declare const DEFER_BLOCK_STATE = "s";
3043
+
3044
+ declare const DEFER_HYDRATE_TRIGGERS = "t";
3045
+
3046
+ declare const DEFER_PARENT_BLOCK_ID = "p";
3047
+
3048
+ /**
3049
+ * Basic set of data structures used for identifying a defer block
3050
+ * and triggering defer blocks
3051
+ */
3052
+ declare interface DeferBlock {
3053
+ lView: LView;
3054
+ tNode: TNode;
3055
+ lContainer: LContainer;
3056
+ }
3057
+
3058
+ /**
3059
+ * Represents defer trigger types.
3060
+ */
3061
+ declare const enum DeferBlockTrigger {
3062
+ Idle = 0,
3063
+ Immediate = 1,
3064
+ Viewport = 2,
3065
+ Interaction = 3,
3066
+ Hover = 4,
3067
+ Timer = 5,
3068
+ When = 6,
3069
+ Never = 7
3070
+ }
3071
+
3015
3072
  /**
3016
3073
  * Describes the state of defer block dependency loading.
3017
3074
  */
@@ -3131,6 +3188,10 @@ declare interface DehydratedView {
3131
3188
  * removed from the DOM during hydration cleanup.
3132
3189
  */
3133
3190
  dehydratedIcuData?: Map<number, DehydratedIcuData>;
3191
+ /**
3192
+ * A mapping of defer block unique ids to the defer block data
3193
+ */
3194
+ dehydratedDeferBlockData?: Record<string, SerializedDeferBlock>;
3134
3195
  }
3135
3196
 
3136
3197
  /**
@@ -3941,6 +4002,7 @@ declare interface EffectNode extends ReactiveNode, SchedulableEffect {
3941
4002
  hasRun: boolean;
3942
4003
  cleanupFns: EffectCleanupFn[] | undefined;
3943
4004
  injector: Injector;
4005
+ notifier: ɵChangeDetectionScheduler;
3944
4006
  onDestroyFn: () => void;
3945
4007
  fn: (cleanupFn: EffectCleanupRegisterFn) => void;
3946
4008
  run(): void;
@@ -4096,6 +4158,10 @@ declare const ENVIRONMENT = 10;
4096
4158
  * A multi-provider token for initialization functions that will run upon construction of an
4097
4159
  * environment injector.
4098
4160
  *
4161
+ * @deprecated from v19.0.0, use provideEnvironmentInitializer instead
4162
+ *
4163
+ * @see {@link provideEnvironmentInitializer}
4164
+ *
4099
4165
  * Note: As opposed to the `APP_INITIALIZER` token, the `ENVIRONMENT_INITIALIZER` functions are not awaited,
4100
4166
  * hence they should not be `async`.
4101
4167
  *
@@ -4341,6 +4407,8 @@ export declare interface ExistingSansProvider {
4341
4407
  useExisting: any;
4342
4408
  }
4343
4409
 
4410
+ declare type ExternalGlobalUtilsFunctions = keyof NgGlobalPublishUtils;
4411
+
4344
4412
  /**
4345
4413
  * Definition of what a factory function should look like.
4346
4414
  */
@@ -4488,7 +4556,6 @@ export declare interface ForwardRefFn {
4488
4556
  * is no component associated with it.
4489
4557
  *
4490
4558
  * @publicApi
4491
- * @globalApi ng
4492
4559
  */
4493
4560
  declare function getComponent<T>(element: Element): T | null;
4494
4561
 
@@ -4502,7 +4569,6 @@ declare function getComponent<T>(element: Element): T | null;
4502
4569
  * inside any component.
4503
4570
  *
4504
4571
  * @publicApi
4505
- * @globalApi ng
4506
4572
  */
4507
4573
  declare function getContext<T extends {}>(element: Element): T | null;
4508
4574
 
@@ -4537,7 +4603,6 @@ declare function getDependenciesFromInjectable<T>(injector: Injector, token: Typ
4537
4603
  * @returns metadata of the passed directive or component
4538
4604
  *
4539
4605
  * @publicApi
4540
- * @globalApi ng
4541
4606
  */
4542
4607
  declare function getDirectiveMetadata(directiveOrComponentInstance: any): ɵComponentDebugMetadata | DirectiveDebugMetadata | null;
4543
4608
 
@@ -4549,7 +4614,6 @@ declare function getDirectiveMetadata(directiveOrComponentInstance: any): ɵComp
4549
4614
  * @returns Injector associated with the element, component or directive instance.
4550
4615
  *
4551
4616
  * @publicApi
4552
- * @globalApi ng
4553
4617
  */
4554
4618
  declare function getInjector(elementOrDir: Element | {}): Injector;
4555
4619
 
@@ -4618,7 +4682,6 @@ declare function getInjectorResolutionPath(injector: Injector): Injector[];
4618
4682
  * @returns Array of event listeners on the DOM element.
4619
4683
  *
4620
4684
  * @publicApi
4621
- * @globalApi ng
4622
4685
  */
4623
4686
  declare function getListeners(element: Element): Listener[];
4624
4687
 
@@ -4652,7 +4715,6 @@ export declare function getNgModuleById<T>(id: string): Type<T>;
4652
4715
  * part of a component view.
4653
4716
  *
4654
4717
  * @publicApi
4655
- * @globalApi ng
4656
4718
  */
4657
4719
  declare function getOwningComponent<T>(elementOrDir: Element | {}): T | null;
4658
4720
 
@@ -4672,7 +4734,6 @@ export declare function getPlatform(): PlatformRef | null;
4672
4734
  * @returns Root components associated with the target object.
4673
4735
  *
4674
4736
  * @publicApi
4675
- * @globalApi ng
4676
4737
  */
4677
4738
  declare function getRootComponents(elementOrDir: Element | {}): {}[];
4678
4739
 
@@ -5112,6 +5173,14 @@ export declare interface HostListenerDecorator {
5112
5173
  new (eventName: string, args?: string[]): any;
5113
5174
  }
5114
5175
 
5176
+ /** * Describes specified delay (in ms) in the `hydrate on timer()` trigger. */
5177
+ declare interface HydrateTimerTriggerDetails {
5178
+ delay: number;
5179
+ }
5180
+
5181
+ /** * Describes all possible hydration trigger details specified in a template. */
5182
+ declare type HydrateTriggerDetails = HydrateTimerTriggerDetails;
5183
+
5115
5184
  declare const HYDRATION = 6;
5116
5185
 
5117
5186
  declare const HYDRATION_INFO_KEY = "__ngDebugHydrationInfo__";
@@ -6230,6 +6299,10 @@ export declare interface InputOptions<T, TransformT> {
6230
6299
  * handle such string values and convert them to `boolean`. See: {@link booleanAttribute}.
6231
6300
  */
6232
6301
  transform?: (v: TransformT) => T;
6302
+ /**
6303
+ * A debug name for the input signal. Used in Angular DevTools to identify the signal.
6304
+ */
6305
+ debugName?: string;
6233
6306
  }
6234
6307
 
6235
6308
  /**
@@ -6619,10 +6692,7 @@ export declare interface KeyValueDifferFactory {
6619
6692
  export declare class KeyValueDiffers {
6620
6693
  /** @nocollapse */
6621
6694
  static ɵprov: unknown;
6622
- /**
6623
- * @deprecated v4.0.0 - Should be private.
6624
- */
6625
- factories: KeyValueDifferFactory[];
6695
+ private readonly factories;
6626
6696
  constructor(factories: KeyValueDifferFactory[]);
6627
6697
  static create<S>(factories: KeyValueDifferFactory[], parent?: KeyValueDiffers): KeyValueDiffers;
6628
6698
  /**
@@ -6730,6 +6800,22 @@ declare enum LContainerFlags {
6730
6800
 
6731
6801
  declare type LegacyInputPartialMapping = string | [bindingPropertyName: string, classPropertyName: string, transformFunction?: Function];
6732
6802
 
6803
+ /**
6804
+ * @experimental
6805
+ */
6806
+ export declare function linkedSignal<D>(computation: () => D, options?: {
6807
+ equal?: ValueEqualityFn<NoInfer<D>>;
6808
+ }): WritableSignal<D>;
6809
+
6810
+ export declare function linkedSignal<S, D>(options: {
6811
+ source: () => S;
6812
+ computation: (source: NoInfer<S>, previous?: {
6813
+ source: NoInfer<S>;
6814
+ value: NoInfer<D>;
6815
+ }) => D;
6816
+ equal?: ValueEqualityFn<NoInfer<D>>;
6817
+ }): WritableSignal<D>;
6818
+
6733
6819
  /**
6734
6820
  * Event listener configuration returned from `getListeners`.
6735
6821
  * @publicApi
@@ -7325,6 +7411,10 @@ export declare interface ModelOptions {
7325
7411
  * name as the input, but suffixed with `Change`. By default, the class field name is used.
7326
7412
  */
7327
7413
  alias?: string;
7414
+ /**
7415
+ * A debug name for the model signal. Used in Angular DevTools to identify the signal.
7416
+ */
7417
+ debugName?: string;
7328
7418
  }
7329
7419
 
7330
7420
  /**
@@ -7368,16 +7458,14 @@ declare const MOVED_VIEWS = 9;
7368
7458
 
7369
7459
  declare const MULTIPLIER = "x";
7370
7460
 
7371
- declare type Mutable<T extends {
7372
- [x: string]: any;
7373
- }, K extends string> = {
7374
- [P in K]: T[P];
7375
- };
7376
-
7377
7461
  declare const NATIVE = 7;
7378
7462
 
7379
7463
  declare const NEXT = 4;
7380
7464
 
7465
+ declare interface NgGlobalPublishUtils {
7466
+ ɵgetLoadedRoutes(route: any): any;
7467
+ }
7468
+
7381
7469
  /**
7382
7470
  * A type describing supported iterable types.
7383
7471
  *
@@ -8321,6 +8409,7 @@ declare class PendingTasksInternal implements OnDestroy {
8321
8409
  private get _hasPendingTasks();
8322
8410
  hasPendingTasks: BehaviorSubject<boolean>;
8323
8411
  add(): number;
8412
+ has(taskId: number): boolean;
8324
8413
  remove(taskId: number): void;
8325
8414
  ngOnDestroy(): void;
8326
8415
  /** @nocollapse */
@@ -8455,6 +8544,11 @@ export declare const PLATFORM_ID: InjectionToken<Object>;
8455
8544
 
8456
8545
  /**
8457
8546
  * A function that is executed when a platform is initialized.
8547
+ *
8548
+ * @deprecated from v19.0.0, use providePlatformInitializer instead
8549
+ *
8550
+ * @see {@link providePlatformInitializer}
8551
+ *
8458
8552
  * @publicApi
8459
8553
  */
8460
8554
  export declare const PLATFORM_INITIALIZER: InjectionToken<readonly (() => void)[]>;
@@ -8586,6 +8680,75 @@ declare type ProcessProvidersFunction = (providers: Provider[]) => Provider[];
8586
8680
  */
8587
8681
  declare type ProjectionSlots = (ɵCssSelectorList | '*')[];
8588
8682
 
8683
+ /**
8684
+ * @description
8685
+ * The provided function is injected at application startup and executed during
8686
+ * app initialization. If the function returns a Promise or an Observable, initialization
8687
+ * does not complete until the Promise is resolved or the Observable is completed.
8688
+ *
8689
+ * You can, for example, create a function that loads language data
8690
+ * or an external configuration, and provide that function using `provideAppInitializer()`.
8691
+ * The function is executed during the application bootstrap process,
8692
+ * and the needed data is available on startup.
8693
+ *
8694
+ * Note that the provided initializer is run in the injection context.
8695
+ *
8696
+ * Previously, this was achieved using the `APP_INITIALIZER` token which is now deprecated.
8697
+ *
8698
+ * @see {@link APP_INITIALIZER}
8699
+ *
8700
+ * @usageNotes
8701
+ * The following example illustrates how to configure an initialization function using
8702
+ * `provideAppInitializer()`
8703
+ * ```
8704
+ * bootstrapApplication(App, {
8705
+ * providers: [
8706
+ * provideAppInitializer(() => {
8707
+ * const http = inject(HttpClient);
8708
+ * return firstValueFrom(
8709
+ * http
8710
+ * .get("https://someUrl.com/api/user")
8711
+ * .pipe(tap(user => { ... }))
8712
+ * );
8713
+ * }),
8714
+ * provideHttpClient(),
8715
+ * ],
8716
+ * });
8717
+ * ```
8718
+ *
8719
+ * @publicApi
8720
+ */
8721
+ export declare function provideAppInitializer(initializerFn: () => Observable<unknown> | Promise<unknown> | void): EnvironmentProviders;
8722
+
8723
+ /**
8724
+ * @description
8725
+ * This function is used to provide initialization functions that will be executed upon construction
8726
+ * of an environment injector.
8727
+ *
8728
+ * Note that the provided initializer is run in the injection context.
8729
+ *
8730
+ * Previously, this was achieved using the `ENVIRONMENT_INITIALIZER` token which is now deprecated.
8731
+ *
8732
+ * @see {@link ENVIRONMENT_INITIALIZER}
8733
+ *
8734
+ * @usageNotes
8735
+ * The following example illustrates how to configure an initialization function using
8736
+ * `provideEnvironmentInitializer()`
8737
+ * ```
8738
+ * createEnvironmentInjector(
8739
+ * [
8740
+ * provideEnvironmentInitializer(() => {
8741
+ * console.log('environment initialized');
8742
+ * }),
8743
+ * ],
8744
+ * parentInjector
8745
+ * );
8746
+ * ```
8747
+ *
8748
+ * @publicApi
8749
+ */
8750
+ export declare function provideEnvironmentInitializer(initializerFn: () => void): EnvironmentProviders;
8751
+
8589
8752
  /**
8590
8753
  * Used to periodically verify no expressions have changed after they were checked.
8591
8754
  *
@@ -8653,6 +8816,21 @@ export declare function provideExperimentalCheckNoChangesForDebug(options: {
8653
8816
  */
8654
8817
  export declare function provideExperimentalZonelessChangeDetection(): EnvironmentProviders;
8655
8818
 
8819
+ /**
8820
+ * @description
8821
+ * This function is used to provide initialization functions that will be executed upon
8822
+ * initialization of the platform injector.
8823
+ *
8824
+ * Note that the provided initializer is run in the injection context.
8825
+ *
8826
+ * Previously, this was achieved using the `PLATFORM_INITIALIZER` token which is now deprecated.
8827
+ *
8828
+ * @see {@link PLATFORM_INITIALIZER}
8829
+ *
8830
+ * @publicApi
8831
+ */
8832
+ export declare function providePlatformInitializer(initializerFn: () => void): EnvironmentProviders;
8833
+
8656
8834
  /**
8657
8835
  * Describes how the `Injector` should be configured.
8658
8836
  * @see [Dependency Injection Guide](guide/di/dependency-injection.
@@ -8914,6 +9092,7 @@ declare interface R3DeclareDirectiveDependencyFacade {
8914
9092
  declare interface R3DeclareDirectiveFacade {
8915
9093
  selector?: string;
8916
9094
  type: Type_2;
9095
+ version: string;
8917
9096
  inputs?: {
8918
9097
  [fieldName: string]: {
8919
9098
  classPropertyName: string;
@@ -8996,6 +9175,7 @@ declare interface R3DeclarePipeDependencyFacade {
8996
9175
  declare interface R3DeclarePipeFacade {
8997
9176
  type: Type_2;
8998
9177
  name: string;
9178
+ version: string;
8999
9179
  pure?: boolean;
9000
9180
  isStandalone?: boolean;
9001
9181
  }
@@ -9425,6 +9605,164 @@ export declare interface RendererType2 {
9425
9605
  */
9426
9606
  export declare function resolveForwardRef<T>(type: T): T;
9427
9607
 
9608
+ /**
9609
+ * A Resource is an asynchronous dependency (for example, the results of an API call) that is
9610
+ * managed and delivered through signals.
9611
+ *
9612
+ * The usual way of creating a `Resource` is through the `resource` function, but various other APIs
9613
+ * may present `Resource` instances to describe their own concepts.
9614
+ *
9615
+ * @experimental
9616
+ */
9617
+ export declare interface Resource<T> {
9618
+ /**
9619
+ * The current value of the `Resource`, or `undefined` if there is no current value.
9620
+ */
9621
+ readonly value: Signal<T | undefined>;
9622
+ /**
9623
+ * The current status of the `Resource`, which describes what the resource is currently doing and
9624
+ * what can be expected of its `value`.
9625
+ */
9626
+ readonly status: Signal<ResourceStatus>;
9627
+ /**
9628
+ * When in the `error` state, this returns the last known error from the `Resource`.
9629
+ */
9630
+ readonly error: Signal<unknown>;
9631
+ /**
9632
+ * Whether this resource is loading a new value (or reloading the existing one).
9633
+ */
9634
+ readonly isLoading: Signal<boolean>;
9635
+ /**
9636
+ * Whether this resource has a valid current value.
9637
+ *
9638
+ * This function is reactive.
9639
+ */
9640
+ hasValue(): this is Resource<T> & {
9641
+ value: Signal<T>;
9642
+ };
9643
+ /**
9644
+ * Instructs the resource to re-load any asynchronous dependency it may have.
9645
+ *
9646
+ * Note that the resource will not enter its reloading state until the actual backend request is
9647
+ * made.
9648
+ *
9649
+ * @returns true if a reload was initiated, false if a reload was unnecessary or unsupported
9650
+ */
9651
+ reload(): boolean;
9652
+ }
9653
+
9654
+ /**
9655
+ * Constructs a `Resource` that projects a reactive request to an asynchronous operation defined by
9656
+ * a loader function, which exposes the result of the loading operation via signals.
9657
+ *
9658
+ * Note that `resource` is intended for _read_ operations, not operations which perform mutations.
9659
+ * `resource` will cancel in-progress loads via the `AbortSignal` when destroyed or when a new
9660
+ * request object becomes available, which could prematurely abort mutations.
9661
+ *
9662
+ * @experimental
9663
+ */
9664
+ export declare function resource<T, R>(options: ResourceOptions<T, R>): ResourceRef<T>;
9665
+
9666
+ /**
9667
+ * Loading function for a `Resource`.
9668
+ *
9669
+ * @experimental
9670
+ */
9671
+ export declare type ResourceLoader<T, R> = (param: ResourceLoaderParams<R>) => PromiseLike<T>;
9672
+
9673
+ /**
9674
+ * Parameter to a `ResourceLoader` which gives the request and other options for the current loading
9675
+ * operation.
9676
+ *
9677
+ * @experimental
9678
+ */
9679
+ export declare interface ResourceLoaderParams<R> {
9680
+ request: Exclude<NoInfer<R>, undefined>;
9681
+ abortSignal: AbortSignal;
9682
+ previous: {
9683
+ status: ResourceStatus;
9684
+ };
9685
+ }
9686
+
9687
+ /**
9688
+ * Options to the `resource` function, for creating a resource.
9689
+ *
9690
+ * @experimental
9691
+ */
9692
+ export declare interface ResourceOptions<T, R> {
9693
+ /**
9694
+ * A reactive function which determines the request to be made. Whenever the request changes, the
9695
+ * loader will be triggered to fetch a new value for the resource.
9696
+ *
9697
+ * If a request function isn't provided, the loader won't rerun unless the resource is reloaded.
9698
+ */
9699
+ request?: () => R;
9700
+ /**
9701
+ * Loading function which returns a `Promise` of the resource's value for a given request.
9702
+ */
9703
+ loader: ResourceLoader<T, R>;
9704
+ /**
9705
+ * Equality function used to compare the return value of the loader.
9706
+ */
9707
+ equal?: ValueEqualityFn<T>;
9708
+ /**
9709
+ * Overrides the `Injector` used by `resource`.
9710
+ */
9711
+ injector?: Injector;
9712
+ }
9713
+
9714
+ /**
9715
+ * A `WritableResource` created through the `resource` function.
9716
+ *
9717
+ * @experimental
9718
+ */
9719
+ export declare interface ResourceRef<T> extends WritableResource<T> {
9720
+ /**
9721
+ * Manually destroy the resource, which cancels pending requests and returns it to `idle` state.
9722
+ */
9723
+ destroy(): void;
9724
+ }
9725
+
9726
+ /**
9727
+ * Status of a `Resource`.
9728
+ *
9729
+ * @experimental
9730
+ */
9731
+ export declare enum ResourceStatus {
9732
+ /**
9733
+ * The resource has no valid request and will not perform any loading.
9734
+ *
9735
+ * `value()` will be `undefined`.
9736
+ */
9737
+ Idle = 0,
9738
+ /**
9739
+ * Loading failed with an error.
9740
+ *
9741
+ * `value()` will be `undefined`.
9742
+ */
9743
+ Error = 1,
9744
+ /**
9745
+ * The resource is currently loading a new value as a result of a change in its `request`.
9746
+ *
9747
+ * `value()` will be `undefined`.
9748
+ */
9749
+ Loading = 2,
9750
+ /**
9751
+ * The resource is currently reloading a fresh value for the same request.
9752
+ *
9753
+ * `value()` will continue to return the previously fetched value during the reloading operation.
9754
+ */
9755
+ Reloading = 3,
9756
+ /**
9757
+ * Loading has completed and the resource has the value returned from the loader.
9758
+ */
9759
+ Resolved = 4,
9760
+ /**
9761
+ * The resource's value was set locally via `.set()` or `.update()`.
9762
+ */
9763
+ Local = 5
9764
+ }
9765
+
9428
9766
  /**
9429
9767
  * The goal here is to make sure that the browser DOM API is the Renderer.
9430
9768
  * We do this by defining a subset of DOM API to be the renderer and then
@@ -9647,6 +9985,33 @@ declare interface SerializedContainerView extends SerializedView {
9647
9985
  [MULTIPLIER]?: number;
9648
9986
  }
9649
9987
 
9988
+ /**
9989
+ * Serialized data structure that contains relevant defer block
9990
+ * information that describes a given incremental hydration boundary
9991
+ */
9992
+ declare interface SerializedDeferBlock {
9993
+ /**
9994
+ * This contains the unique id of this defer block's parent, if it exists.
9995
+ */
9996
+ [DEFER_PARENT_BLOCK_ID]: string | null;
9997
+ /**
9998
+ * This field represents a status, based on the `DeferBlockState` enum.
9999
+ */
10000
+ [DEFER_BLOCK_STATE]?: number;
10001
+ /**
10002
+ * Number of root nodes that belong to this defer block's template.
10003
+ * This information is needed to effectively traverse the DOM tree
10004
+ * and add jsaction attributes to root nodes appropriately for
10005
+ * incremental hydration.
10006
+ */
10007
+ [NUM_ROOT_NODES]: number;
10008
+ /**
10009
+ * The list of triggers that exist for incremental hydration, based on the
10010
+ * `Trigger` enum.
10011
+ */
10012
+ [DEFER_HYDRATE_TRIGGERS]: (DeferBlockTrigger | SerializedTriggerDetails)[] | null;
10013
+ }
10014
+
9650
10015
  /**
9651
10016
  * Represents element containers within this view, stored as key-value pairs
9652
10017
  * where key is an index of a container in an LView (also used in the
@@ -9658,6 +10023,11 @@ declare interface SerializedElementContainers {
9658
10023
  [key: number]: number;
9659
10024
  }
9660
10025
 
10026
+ declare interface SerializedTriggerDetails {
10027
+ trigger: DeferBlockTrigger;
10028
+ delay?: number;
10029
+ }
10030
+
9661
10031
  /**
9662
10032
  * Serialized data structure that contains relevant hydration
9663
10033
  * annotation information that describes a given hydration boundary
@@ -9705,6 +10075,15 @@ declare interface SerializedView {
9705
10075
  * active ICU cases.
9706
10076
  */
9707
10077
  [I18N_DATA]?: Record<number, number[]>;
10078
+ /**
10079
+ * If this view represents a `@defer` block, this field contains
10080
+ * unique id of the block.
10081
+ */
10082
+ [DEFER_BLOCK_ID]?: string;
10083
+ /**
10084
+ * This field represents a status, based on the `DeferBlockState` enum.
10085
+ */
10086
+ [DEFER_BLOCK_STATE]?: number;
9708
10087
  }
9709
10088
 
9710
10089
  /**
@@ -10040,6 +10419,14 @@ declare interface TDeferBlockDetails {
10040
10419
  * standalone components used within this defer block.
10041
10420
  */
10042
10421
  providers: Provider[] | null;
10422
+ /**
10423
+ * List of hydrate triggers for a given block
10424
+ */
10425
+ hydrateTriggers: Map<DeferBlockTrigger, HydrateTriggerDetails | null> | null;
10426
+ /**
10427
+ * List of prefetch triggers for a given block
10428
+ */
10429
+ prefetchTriggers: Set<DeferBlockTrigger> | null;
10043
10430
  }
10044
10431
 
10045
10432
  /** Static data for an <ng-container> */
@@ -11782,19 +12169,25 @@ export declare interface ViewChildFunction {
11782
12169
  *
11783
12170
  * @publicAPI
11784
12171
  */
11785
- <LocatorT>(locator: ProviderToken<LocatorT> | string): Signal<LocatorT | undefined>;
11786
12172
  <LocatorT, ReadT>(locator: ProviderToken<LocatorT> | string, opts: {
11787
12173
  read: ProviderToken<ReadT>;
12174
+ debugName?: string;
11788
12175
  }): Signal<ReadT | undefined>;
12176
+ <LocatorT>(locator: ProviderToken<LocatorT> | string, opts?: {
12177
+ debugName?: string;
12178
+ }): Signal<LocatorT | undefined>;
11789
12179
  /**
11790
12180
  * Initializes a view child query that is expected to always match an element.
11791
12181
  *
11792
12182
  * @publicAPI
11793
12183
  */
11794
12184
  required: {
11795
- <LocatorT>(locator: ProviderToken<LocatorT> | string): Signal<LocatorT>;
12185
+ <LocatorT>(locator: ProviderToken<LocatorT> | string, opts?: {
12186
+ debugName?: string;
12187
+ }): Signal<LocatorT>;
11796
12188
  <LocatorT, ReadT>(locator: ProviderToken<LocatorT> | string, opts: {
11797
12189
  read: ProviderToken<ReadT>;
12190
+ debugName?: string;
11798
12191
  }): Signal<ReadT>;
11799
12192
  };
11800
12193
  }
@@ -11814,10 +12207,13 @@ export declare type ViewChildren = Query;
11814
12207
  */
11815
12208
  export declare const ViewChildren: ViewChildrenDecorator;
11816
12209
 
11817
- export declare function viewChildren<LocatorT>(locator: ProviderToken<LocatorT> | string): Signal<ReadonlyArray<LocatorT>>;
12210
+ export declare function viewChildren<LocatorT>(locator: ProviderToken<LocatorT> | string, opts?: {
12211
+ debugName?: string;
12212
+ }): Signal<ReadonlyArray<LocatorT>>;
11818
12213
 
11819
12214
  export declare function viewChildren<LocatorT, ReadT>(locator: ProviderToken<LocatorT> | string, opts: {
11820
12215
  read: ProviderToken<ReadT>;
12216
+ debugName?: string;
11821
12217
  }): Signal<ReadonlyArray<ReadT>>;
11822
12218
 
11823
12219
  /**
@@ -12166,13 +12562,26 @@ export declare abstract class ViewRef extends ChangeDetectorRef {
12166
12562
  }
12167
12563
 
12168
12564
  /**
12169
- * Interface for tracking root `ViewRef`s in `ApplicationRef`.
12565
+ * A `Resource` with a mutable value.
12170
12566
  *
12171
- * NOTE: Importing `ApplicationRef` here directly creates circular dependency, which is why we have
12172
- * a subset of the `ApplicationRef` interface `ViewRefTracker` here.
12567
+ * Overwriting the value of a resource sets it to the 'local' state.
12568
+ *
12569
+ * @experimental
12173
12570
  */
12174
- declare interface ViewRefTracker {
12175
- detachView(viewRef: ViewRef): void;
12571
+ export declare interface WritableResource<T> extends Resource<T> {
12572
+ readonly value: WritableSignal<T | undefined>;
12573
+ hasValue(): this is WritableResource<T> & {
12574
+ value: WritableSignal<T>;
12575
+ };
12576
+ /**
12577
+ * Convenience wrapper for `value.set`.
12578
+ */
12579
+ set(value: T | undefined): void;
12580
+ /**
12581
+ * Convenience wrapper for `value.update`.
12582
+ */
12583
+ update(updater: (value: T | undefined) => T | undefined): void;
12584
+ asReadonly(): Resource<T>;
12176
12585
  }
12177
12586
 
12178
12587
  /**
@@ -12204,8 +12613,6 @@ export declare interface WritableSignal<T> extends Signal<T> {
12204
12613
  declare class ZoneAwareEffectScheduler implements ɵEffectScheduler {
12205
12614
  private queuedEffectCount;
12206
12615
  private queues;
12207
- private readonly pendingTasks;
12208
- protected taskId: number | null;
12209
12616
  schedule(handle: SchedulableEffect): void;
12210
12617
  private enqueue;
12211
12618
  /**
@@ -12668,8 +13075,7 @@ export declare interface ɵComponentDef<T> extends ɵDirectiveDef<T> {
12668
13075
  */
12669
13076
  tView: TView | null;
12670
13077
  /**
12671
- * A function added by the {@link ɵɵStandaloneFeature} and used by the framework to create
12672
- * standalone injectors.
13078
+ * A function used by the framework to create standalone injectors.
12673
13079
  */
12674
13080
  getStandaloneInjector: ((parentInjector: EnvironmentInjector) => EnvironmentInjector | null) | null;
12675
13081
  /**
@@ -12804,10 +13210,7 @@ export declare interface ɵDeferBlockDependencyInterceptor {
12804
13210
  /**
12805
13211
  * Defer block instance for testing.
12806
13212
  */
12807
- export declare interface ɵDeferBlockDetails {
12808
- lContainer: LContainer;
12809
- lView: LView;
12810
- tNode: TNode;
13213
+ export declare interface ɵDeferBlockDetails extends DeferBlock {
12811
13214
  tDetails: TDeferBlockDetails;
12812
13215
  }
12813
13216
 
@@ -12996,6 +13399,8 @@ export declare interface ɵDirectiveType<T> extends Type<T> {
12996
13399
  ɵfac: unknown;
12997
13400
  }
12998
13401
 
13402
+ export declare function ɵdisableProfiling(): void;
13403
+
12999
13404
  /**
13000
13405
  * A scheduler which manages the execution of effects.
13001
13406
  */
@@ -13014,6 +13419,13 @@ export declare abstract class ɵEffectScheduler {
13014
13419
  static ɵprov: unknown;
13015
13420
  }
13016
13421
 
13422
+ /**
13423
+ * This enables an internal performance profiler
13424
+ *
13425
+ * It should not be imported in application code
13426
+ */
13427
+ export declare function ɵenableProfiling(): void;
13428
+
13017
13429
  /**
13018
13430
  * Index of each type of locale data from the extra locale data array
13019
13431
  */
@@ -13066,6 +13478,14 @@ export declare function ɵgenerateStandaloneInDeclarationsError(type: Type<any>,
13066
13478
  */
13067
13479
  export declare function ɵgetAsyncClassMetadataFn(type: Type<unknown>): (() => Promise<Array<Type<unknown>>>) | null;
13068
13480
 
13481
+ /**
13482
+ * Gets the class name of the closest component to a node.
13483
+ * Warning! this function will return minified names if the name of the component is minified. The
13484
+ * consumer of the function is responsible for resolving the minified name to its original name.
13485
+ * @param node Node from which to start the search.
13486
+ */
13487
+ export declare function ɵgetClosestComponentName(node: Node): string | null;
13488
+
13069
13489
  /**
13070
13490
  * Retrieves all defer blocks in a given LView.
13071
13491
  *
@@ -13097,7 +13517,6 @@ export declare function ɵgetDeferBlocks(lView: LView, deferBlocks: ɵDeferBlock
13097
13517
  * @returns Array of directives associated with the node.
13098
13518
  *
13099
13519
  * @publicApi
13100
- * @globalApi ng
13101
13520
  */
13102
13521
  export declare function ɵgetDirectives(node: Node): {}[];
13103
13522
 
@@ -13110,7 +13529,6 @@ export declare function ɵgetDirectives(node: Node): {}[];
13110
13529
  * @returns Host element of the target.
13111
13530
  *
13112
13531
  * @publicApi
13113
- * @globalApi ng
13114
13532
  */
13115
13533
  export declare function ɵgetHostElement(componentOrDirective: {}): Element;
13116
13534
 
@@ -13286,6 +13704,10 @@ export declare interface ɵInputSignalNode<T, TransformT> extends SignalNode<T>
13286
13704
  * purposes we assume it's a valid `T` value. Type-checking will enforce that.
13287
13705
  */
13288
13706
  applyValueToInputSignal<T, TransformT>(node: ɵInputSignalNode<T, TransformT>, value: T): void;
13707
+ /**
13708
+ * A debug name for the input signal. Used in Angular DevTools to identify the signal.
13709
+ */
13710
+ debugName?: string;
13289
13711
  }
13290
13712
 
13291
13713
  /**
@@ -13335,6 +13757,12 @@ export declare function ɵinternalProvideZoneChangeDetection({ ngZoneFactory, ig
13335
13757
  */
13336
13758
  export declare const ɵIS_HYDRATION_DOM_REUSE_ENABLED: InjectionToken<boolean>;
13337
13759
 
13760
+ /**
13761
+ * Internal token that indicates whether incremental hydration support
13762
+ * is enabled.
13763
+ */
13764
+ export declare const ɵIS_INCREMENTAL_HYDRATION_ENABLED: InjectionToken<boolean>;
13765
+
13338
13766
  export declare function ɵisBoundToModule<C>(cf: ComponentFactory<C>): boolean;
13339
13767
 
13340
13768
  export declare function ɵisComponentDefPendingResolution(type: Type<any>): boolean;
@@ -13463,7 +13891,10 @@ export declare enum ɵLocaleDataIndex {
13463
13891
  export declare function ɵmicrotaskEffect(effectFn: (onCleanup: EffectCleanupRegisterFn) => void, options?: CreateEffectOptions): EffectRef;
13464
13892
 
13465
13893
  export declare class ɵMicrotaskEffectScheduler extends ZoneAwareEffectScheduler {
13894
+ private readonly pendingTasks;
13895
+ private taskId;
13466
13896
  schedule(effect: SchedulableEffect): void;
13897
+ flush(): void;
13467
13898
  /** @nocollapse */
13468
13899
  static ɵprov: unknown;
13469
13900
  }
@@ -13488,6 +13919,12 @@ export declare const ɵNG_PIPE_DEF: string;
13488
13919
 
13489
13920
  export declare const ɵNG_PROV_DEF: string;
13490
13921
 
13922
+ /**
13923
+ * A constant defining the default value for the standalone attribute in Directive and Pipes decorators.
13924
+ * Extracted to a separate file to facilitate G3 patches.
13925
+ */
13926
+ export declare const ɵNG_STANDALONE_DEFAULT_VALUE = true;
13927
+
13491
13928
  /**
13492
13929
  * Runtime link information for NgModules.
13493
13930
  *
@@ -13614,7 +14051,8 @@ export declare const enum ɵNotificationSource {
13614
14051
  ViewDetachedFromDOM = 10,
13615
14052
  AsyncAnimationsLoaded = 11,
13616
14053
  PendingTaskRemoved = 12,
13617
- RootEffect = 13
14054
+ RootEffect = 13,
14055
+ ViewEffect = 14
13618
14056
  }
13619
14057
 
13620
14058
  /**
@@ -13624,6 +14062,9 @@ export declare const enum ɵNotificationSource {
13624
14062
  export declare function ɵpatchComponentDefWithScope<C>(componentDef: ɵComponentDef<C>, transitiveScopes: ɵNgModuleTransitiveScopes): void;
13625
14063
 
13626
14064
 
14065
+ export declare const ɵPERFORMANCE_MARK_PREFIX = "\uD83C\uDD70\uFE0F";
14066
+
14067
+
13627
14068
  /**
13628
14069
  * A guarded `performance.mark` for feature marking.
13629
14070
  *
@@ -13757,6 +14198,12 @@ export declare interface ɵProviderRecord {
13757
14198
  importPath?: Type<unknown>[];
13758
14199
  }
13759
14200
 
14201
+ /**
14202
+ * Publishes the given function to `window.ng` from package other than @angular/core
14203
+ * So that it can be used from the browser console when an application is not in production.
14204
+ */
14205
+ export declare function ɵpublishExternalGlobalUtil<K extends ExternalGlobalUtilsFunctions>(name: K, fn: NgGlobalPublishUtils[K]): void;
14206
+
13760
14207
  export declare function ɵreadHydrationInfo(node: RNode): ɵHydrationInfo | null;
13761
14208
 
13762
14209
  export declare class ɵReflectionCapabilities implements PlatformReflectionCapabilities {
@@ -14036,8 +14483,8 @@ export declare const enum ɵRuntimeErrorCode {
14036
14483
  OUTPUT_REF_DESTROYED = 953,
14037
14484
  LOOP_TRACK_DUPLICATE_KEYS = -955,
14038
14485
  LOOP_TRACK_RECREATE = -956,
14039
- RUNTIME_DEPS_INVALID_IMPORTED_TYPE = 1000,
14040
- RUNTIME_DEPS_ORPHAN_COMPONENT = 1001
14486
+ RUNTIME_DEPS_INVALID_IMPORTED_TYPE = 980,
14487
+ RUNTIME_DEPS_ORPHAN_COMPONENT = 981
14041
14488
  }
14042
14489
 
14043
14490
  /**
@@ -14175,6 +14622,18 @@ export { ɵSIGNAL }
14175
14622
  */
14176
14623
  export declare const ɵSSR_CONTENT_INTEGRITY_MARKER = "nghm";
14177
14624
 
14625
+ /**
14626
+ * Function that will start measuring against the performance API
14627
+ * Should be used in pair with stopMeasuring
14628
+ */
14629
+ export declare function ɵstartMeasuring<T>(label: string): void;
14630
+
14631
+ /**
14632
+ * Function that will stop measuring against the performance API
14633
+ * Should be used in pair with stopMeasuring
14634
+ */
14635
+ export declare function ɵstopMeasuring(label: string): void;
14636
+
14178
14637
  /** Store a value in the `data` at a given `index`. */
14179
14638
  export declare function ɵstore<T>(tView: TView, lView: LView, index: number, value: T): void;
14180
14639
 
@@ -14478,7 +14937,7 @@ export declare class ɵViewRef<T> implements EmbeddedViewRef<T>, ChangeDetectorR
14478
14937
  checkNoChanges(): void;
14479
14938
  attachToViewContainerRef(): void;
14480
14939
  detachFromAppRef(): void;
14481
- attachToAppRef(appRef: ViewRefTracker): void;
14940
+ attachToAppRef(appRef: ApplicationRef): void;
14482
14941
  }
14483
14942
 
14484
14943
  /**
@@ -14511,6 +14970,15 @@ export declare function ɵwithEventReplay(): Provider[];
14511
14970
  */
14512
14971
  export declare function ɵwithI18nSupport(): Provider[];
14513
14972
 
14973
+ /**
14974
+ * Returns a set of providers required to setup support for incremental hydration.
14975
+ * Requires hydration to be enabled separately.
14976
+ * Enabling incremental hydration also enables event replay for the entire app.
14977
+ *
14978
+ * @developerPreview
14979
+ */
14980
+ export declare function ɵwithIncrementalHydration(): Provider[];
14981
+
14514
14982
  /**
14515
14983
  * Returns a writable type version of type.
14516
14984
  *
@@ -15313,21 +15781,54 @@ export declare function ɵɵdefer(index: number, primaryTmplIndex: number, depen
15313
15781
  */
15314
15782
  export declare function ɵɵdeferEnableTimerScheduling(tView: TView, tDetails: TDeferBlockDetails, placeholderConfigIndex?: number | null, loadingConfigIndex?: number | null): void;
15315
15783
 
15784
+ /**
15785
+ * Specifies that hydration never occurs.
15786
+ * @codeGenApi
15787
+ */
15316
15788
  export declare function ɵɵdeferHydrateNever(): void;
15317
15789
 
15790
+ /**
15791
+ * Creates runtime data structures for the `on hover` hydrate trigger.
15792
+ * @codeGenApi
15793
+ */
15318
15794
  export declare function ɵɵdeferHydrateOnHover(): void;
15319
15795
 
15796
+ /**
15797
+ * Sets up logic to handle the `on idle` deferred trigger.
15798
+ * @codeGenApi
15799
+ */
15320
15800
  export declare function ɵɵdeferHydrateOnIdle(): void;
15321
15801
 
15802
+ /**
15803
+ * Sets up logic to handle the `on immediate` hydrate trigger.
15804
+ * @codeGenApi
15805
+ */
15322
15806
  export declare function ɵɵdeferHydrateOnImmediate(): void;
15323
15807
 
15808
+ /**
15809
+ * Creates runtime data structures for the `on interaction` hydrate trigger.
15810
+ * @codeGenApi
15811
+ */
15324
15812
  export declare function ɵɵdeferHydrateOnInteraction(): void;
15325
15813
 
15326
- export declare function ɵɵdeferHydrateOnTimer(): void;
15814
+ /**
15815
+ * Creates runtime data structures for the `on timer` hydrate trigger.
15816
+ * @param delay Amount of time to wait before loading the content.
15817
+ * @codeGenApi
15818
+ */
15819
+ export declare function ɵɵdeferHydrateOnTimer(delay: number): void;
15327
15820
 
15821
+ /**
15822
+ * Creates runtime data structures for the `on viewport` hydrate trigger.
15823
+ * @codeGenApi
15824
+ */
15328
15825
  export declare function ɵɵdeferHydrateOnViewport(): void;
15329
15826
 
15330
- export declare function ɵɵdeferHydrateWhen(): void;
15827
+ /**
15828
+ * Hydrates the deferred content when a value becomes truthy.
15829
+ * @codeGenApi
15830
+ */
15831
+ export declare function ɵɵdeferHydrateWhen(rawValue: unknown): void;
15331
15832
 
15332
15833
  /**
15333
15834
  * Creates runtime data structures for the `on hover` deferred trigger.
@@ -15443,7 +15944,7 @@ export declare function ɵɵdeferWhen(rawValue: unknown): void;
15443
15944
  * ```
15444
15945
  * @codeGenApi
15445
15946
  */
15446
- export declare function ɵɵdefineComponent<T>(componentDefinition: ComponentDefinition<T>): Mutable<ɵComponentDef<any>, keyof ɵComponentDef<any>>;
15947
+ export declare function ɵɵdefineComponent<T>(componentDefinition: ComponentDefinition<T>): ɵComponentDef<any>;
15447
15948
 
15448
15949
  /**
15449
15950
  * Create a directive definition object.
@@ -15461,7 +15962,7 @@ export declare function ɵɵdefineComponent<T>(componentDefinition: ComponentDef
15461
15962
  *
15462
15963
  * @codeGenApi
15463
15964
  */
15464
- export declare function ɵɵdefineDirective<T>(directiveDefinition: DirectiveDefinition<T>): Mutable<ɵDirectiveDef<any>, keyof ɵDirectiveDef<any>>;
15965
+ export declare function ɵɵdefineDirective<T>(directiveDefinition: DirectiveDefinition<T>): ɵDirectiveDef<any>;
15465
15966
 
15466
15967
  /**
15467
15968
  * Construct an injectable definition which defines how a token will be constructed by the DI
@@ -16222,7 +16723,7 @@ export declare type ɵɵNgModuleDeclaration<T, Declarations, Imports, Exports> =
16222
16723
  *
16223
16724
  * @codeGenApi
16224
16725
  */
16225
- export declare function ɵɵNgOnChangesFeature<T>(): DirectiveDefFeature;
16726
+ export declare const ɵɵNgOnChangesFeature: () => DirectiveDefFeature;
16226
16727
 
16227
16728
 
16228
16729
  /**
@@ -17086,9 +17587,10 @@ export declare function ɵɵrepeaterTrackByIndex(index: number): number;
17086
17587
  * Replaces the metadata of a component type and re-renders all live instances of the component.
17087
17588
  * @param type Class whose metadata will be replaced.
17088
17589
  * @param applyMetadata Callback that will apply a new set of metadata on the `type` when invoked.
17590
+ * @param locals Local symbols from the source location that have to be exposed to the callback.
17089
17591
  * @codeGenApi
17090
17592
  */
17091
- export declare function ɵɵreplaceMetadata(type: Type<unknown>, applyMetadata: () => void): void;
17593
+ export declare function ɵɵreplaceMetadata(type: Type<unknown>, applyMetadata: (...args: [Type<unknown>, Record<string, unknown>, ...unknown[]]) => void, locals: unknown[]): void;
17092
17594
 
17093
17595
  /**
17094
17596
  * Clears the view set in `ɵɵrestoreView` from memory. Returns the passed in
@@ -17251,18 +17753,6 @@ export declare function ɵɵsetComponentScope(type: ɵComponentType<any>, direct
17251
17753
  */
17252
17754
  export declare function ɵɵsetNgModuleScope(type: any, scope: NgModuleScopeInfoFromDecorator): unknown;
17253
17755
 
17254
- /**
17255
- * A feature that acts as a setup code for the {@link StandaloneService}.
17256
- *
17257
- * The most important responsibility of this feature is to expose the "getStandaloneInjector"
17258
- * function (an entry points to a standalone injector creation) on a component definition object. We
17259
- * go through the features infrastructure to make sure that the standalone injector creation logic
17260
- * is tree-shakable and not included in applications that don't use standalone components.
17261
- *
17262
- * @codeGenApi
17263
- */
17264
- export declare function ɵɵStandaloneFeature(definition: ɵComponentDef<unknown>): void;
17265
-
17266
17756
  /**
17267
17757
  * Instruction that stores the value of a `@let` declaration on the current view.
17268
17758
  * Returns the value to allow usage inside variable initializers.