import { type Scope } from "../shared/protocol.js"; import { type Handlers, type ServerDispatch } from "./server-types.js"; import type { Conversation, Invite, Message, ParticipantActivity } from "../shared/shared-types.js"; import type { IndicatorStore } from "./indicators-store.js"; import type { ServerContext } from "./context.js"; export type PreparedEvent = { scope: Scope; data: unknown; targets: string[]; }; export declare class Subscriptions { private dispatch; private handlers; private indicators; private byScope; private byParticipant; private ctx; constructor(dispatch: ServerDispatch, handlers: Handlers, indicators: IndicatorStore); setContext(ctx: ServerContext): void; hasSubscriber(scope: Scope, participantId: string): boolean; add(participantId: string, scope: Scope): boolean; remove(participantId: string, scope: Scope): void; removeAllFor(participantId: string): void; private safeDispatch; sendResponse(participantId: string, requestId: string, ok: boolean, data: unknown, error?: string): void; emit(...lists: PreparedEvent[][]): void; prepareMessage(message: Message, bumpActivity: boolean): PreparedEvent[]; prepareIndicators(conversationId: string): PreparedEvent[]; prepareConversation(conversation: Conversation): PreparedEvent[]; prepareConversationDeleted(conversationId: string, formerParticipantIds: string[]): PreparedEvent[]; prepareInvite(invite: Invite): PreparedEvent[]; prepareInviteDeleted(conversationId: string, fromParticipantId: string, toParticipantId: string): PreparedEvent[]; prepareParticipantActivity(participantId: string, activity: ParticipantActivity): PreparedEvent[]; prepareParticipantActivityDeleted(participantId: string, conversationId: string): PreparedEvent[]; } //# sourceMappingURL=subscriptions.d.ts.map