import type { EventData, EventName } from "@edenapp/types"; import type { BackendManager } from "../process-manager/BackendManager"; import type { ViewManager } from "../view-manager/ViewManager"; import type { PermissionRegistry } from "./PermissionRegistry"; export declare class EventSubscriberManager { private viewManager; private backendManager?; private subscriptions; private backendSubscriptions; private foundationSubscriptions; private permissionRegistry?; constructor(viewManager: ViewManager); /** * Set the backend manager for backend notifications */ setBackendManager(backendManager: BackendManager): void; /** * Set the permission registry for permission checking */ setPermissionRegistry(registry: PermissionRegistry): void; /** * Subscribe a view to an event */ subscribe(viewId: number, eventName: string): boolean; /** * Subscribe foundation to an event */ subscribeFoundation(eventName: string): boolean; /** * Subscribe a backend to an event */ subscribeBackend(appId: string, eventName: string): boolean; /** * Unsubscribe a view from an event */ unsubscribe(viewId: number, eventName: string): boolean; /** * Unsubscribe foundation from an event */ unsubscribeFoundation(eventName: string): boolean; /** * Unsubscribe a backend from an event */ unsubscribeBackend(appId: string, eventName: string): boolean; /** * Get all views subscribed to an event */ getSubscribedViews(eventName: string): number[]; /** * Get all backends subscribed to an event */ getSubscribedBackends(eventName: string): string[]; /** Send an event to subscribed external consumers. */ notify(eventName: T, payload: EventData): void; /** * Send event to a specific subscribed view */ notifyView(viewId: number, eventName: T, payload: EventData): boolean; /** * Remove all subscriptions for a view */ removeViewSubscriptions(viewId: number): void; /** * Remove all subscriptions for a backend */ removeBackendSubscriptions(appId: string): void; dispose(): void; } //# sourceMappingURL=EventSubscriberManager.d.ts.map