/** * Frontend Event Persistence Handler * * Simple, scalable pattern for handling domain events to update frontend store. * * Features: * - Event-driven store updates (works from ANY service via CoreEventManager) * - Registration-based (prevents duplicate handlers) * - Safe for SSR (store getter called per event) * - Proper cleanup tracking * * @example * ```typescript * FrontendEventPersistenceHandler.register({ * domain: 'files', * events: { * 'files:upload:uploading': { * handler: (store) => store.setUploading(true), * }, * 'files:upload:uploaded': { * handler: (store, payload) => { * store.setUploading(false); * if (payload.result) { * store.addUpload(FilesMapper.toDomain(payload.result)); * } * }, * }, * 'files:upload:error': { * handler: (store) => store.setUploading(false), * }, * }, * getStore: () => Core._rootStore?.getState().files, * }); * ``` */ import type { DomainFrontendEventConfig } from '@plyaz/types/core'; /** * Frontend Event Persistence Handler * * Manages event subscriptions for updating frontend store state. * Provides a scalable, reusable pattern for all domains. */ export declare class FrontendEventPersistenceHandler { private static registeredDomains; private static cleanupFns; /** * Register event handlers for a domain * * @typeParam TStore - Store slice type * @typeParam TPayload - Event payload type * @param config - Domain event configuration */ static register(config: DomainFrontendEventConfig): void; /** * Unregister all event handlers */ static unregisterAll(): void; /** * Check if a domain is registered */ static isRegistered(domain: string): boolean; /** * Get list of registered domains */ static getRegisteredDomains(): string[]; } //# sourceMappingURL=FrontendEventPersistenceHandler.d.ts.map