import { Resolve, ActivatedRouteSnapshot } from '@angular/router'; import { Config } from './config'; import { ConfigService } from './config.service'; import { User, UserService } from './user.service'; import { CategoryService, Category } from './category.service'; import { Shop, ShopService } from './shop.service'; import { Observable } from 'rxjs'; import { CartService, CartState } from './cart.service'; import { OrderService } from './order/order.service'; import { Order } from './order/order'; import * as i0 from "@angular/core"; export interface LoaderCoreData { config?: Config; user?: User; state?: CartState; categories?: Category[]; shops?: Shop[]; orders?: Order[]; timestamp?: number; } export type LoaderData = [Config, User, Category[]?, Shop[]?, Order[]?, Error?]; export declare class LoaderService { private $config; private $user; private $category; private $cart; private $shop; private $order; config$: Observable; private latestCoreData; private error; private preload; constructor($config: ConfigService, $user: UserService, $category: CategoryService, $cart: CartService, $shop: ShopService, $order: OrderService); getError(): any; /** @deprecated */ private preloader; update(): Observable>; /** * Charge et broadcast config+hub avec tous les services associés * @param hubSlug Slug du hub (optionnel = config par défaut) * @returns Observable LoaderData [Config, User, Category[]?, Shop[]?, Order[]?] */ readyWithStore(hubSlug?: string): Observable; /** * Charge tous les services selon preload settings * @param config Configuration chargée * @param hubSlug Hub spécifique (null = tous) */ private loadAllServices; /** * Configure le broadcasting automatique lors des updates de services */ private setupLatestCoreData; /** * Parse route snapshot data loader pour extraire config, user, categories, shops, orders * @param snapshotData - Données de route.snapshot.data.loader (format LoaderData) * @returns LoaderCoreData avec config, user, categories, shops, orders typés * * @example * ```typescript * // Dans un composant utilisant route data * ngOnInit() { * const { config, user, categories, shops, orders } = * LoaderService.parseSnapshotData(this.$route.snapshot.data.loader); * * if (config && user) { * this.initializeWithData(config, user); * } * } * ``` */ static parseSnapshotData(snapshotData: any): LoaderCoreData; /** * ✅ TEMPS RÉEL: Récupère les dernières valeurs des Subject * * @returns LoaderCoreData avec toutes les données core actuelles */ getLatestCoreData(): LoaderCoreData; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } export declare class LoaderResolve implements Resolve> { private $loader; constructor($loader: LoaderService); resolve(route: ActivatedRouteSnapshot): Promise; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } export declare class UserResolve implements Resolve> { private $loader; constructor($loader: LoaderService); resolve(route: ActivatedRouteSnapshot): Promise; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } //# sourceMappingURL=loader.service.d.ts.map