import * as i0 from '@angular/core'; import { InjectionToken, Provider, OnDestroy } from '@angular/core'; import * as rxjs from 'rxjs'; /** * Configuration for the `HydrationTracker` service. */ interface HydrationTrackerConfig { /** * The timeout in milliseconds after which the hydration tracker will consider the application hydrated. * If not provided, defaults to 10 seconds (10000 milliseconds). */ timeout?: number; /** * Whether to log the hydration tracker events to the console. * If not provided, defaults to false. */ logging?: boolean; } /** * Injection token for the `HydrationTracker` service configuration. */ declare const HYDRATION_TRACKER_CONFIG_TOKEN: InjectionToken; /** * Provides a configuration object for the `HydrationTracker` service. * * @param config - The configuration object. * * Example usage: * ```ts * import { provideHydrationTracker } from '@rx-angular/cdk/ssr'; * * const appConfig: ApplicationConfig = { * providers: [provideHydrationTracker({ timeout: 10000 })], * }; * ``` */ declare function provideHydrationTracker(config?: HydrationTrackerConfig): Provider; /** * A high-performance utility to track application hydration status using a MutationObserver, * with a timeout safety net. * * It provides a signal `isFullyHydrated` that becomes true once all components are * hydrated or after a configurable timeout (default: 10 seconds). * * Disclaimer: The service only runs in the browser and is not available on the server. */ declare class HydrationTracker implements OnDestroy { private config; private platform; private ngZone; private observer; private timeoutId; /** * A reactive signal that emits `true` when the application is fully hydrated. */ readonly isFullyHydrated: i0.WritableSignal; /** * An observable that emits `true` when the application is fully hydrated. */ readonly isFullyHydrated$: rxjs.Observable; constructor(); private initializeObserver; private getUnhydratedElements; private completeHydration; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * An injection token that provides information about the current platform. * * It provides the following information: * - `isServer`: Whether the current platform is the server. * - `isBrowser`: Whether the current platform is the browser. * - `isServerRenderer`: Whether the current platform is the browser and the application was server-side rendered. */ declare const PLATFORM: InjectionToken<{ isServer: boolean; isBrowser: boolean; isServerRendered: boolean; }>; export { HYDRATION_TRACKER_CONFIG_TOKEN, HydrationTracker, PLATFORM, provideHydrationTracker }; export type { HydrationTrackerConfig };