import { ae as HttpClient, af as AgentEventEnvelope, ag as InboxService, ah as NovuEventEmitter, ai as Session, aj as Result, ak as ScheduleCache, U as Schedule, al as UpdateScheduleArgs, am as PreferencesCache, an as ListPreferencesArgs, P as Preference, ao as BasePreferenceArgs, ap as InstancePreferenceArgs, aq as ListNotificationsArgs, w as ListNotificationsResponse, I as InboxNotification, N as Notification, a as NotificationFilter, ar as FilterCountArgs, as as FilterCountResponse, at as FiltersCountArgs, F as FiltersCountResponse, au as BaseArgs, av as InstanceArgs, aw as SnoozeArgs, A as AgentMessage, y as LoadConversationArgs, z as LoadConversationResult, V as SendMessageArgs, W as SendMessageResult, G as GenerateChatOAuthUrlArgs, ax as GenerateConnectOAuthUrlArgs, u as ListChannelConnectionsArgs, c as ChannelConnectionResponse, o as GetChannelConnectionArgs, k as DeleteChannelConnectionArgs, ay as GenerateLinkUserOAuthUrlArgs, v as ListChannelEndpointsArgs, d as ChannelEndpointResponse, p as GetChannelEndpointArgs, h as CreateChannelEndpointArgs, l as DeleteChannelEndpointArgs, L as LinkChannelEndpointArgs, t as LinkChannelEndpointResponse, az as SubscriptionsCache, _ as Subscriber, x as ListSubscriptionsArgs, aA as Options, a3 as TopicSubscription, q as GetSubscriptionArgs, i as CreateSubscriptionArgs, b as BaseUpdateSubscriptionArgs, s as InstanceUpdateSubscriptionArgs, B as BaseDeleteSubscriptionArgs, r as InstanceDeleteSubscriptionArgs, X as SocketEventNames, aB as EventNames, E as EventHandler, n as Events, aC as ContextValue, K as NovuOptions, C as Context } from './inbox-service-C1TlfPSW.js'; type AgentChatSendMessageArgs = { agentId: string; text: string; /** Existing conversation id. Omit this field to create a new conversation. */ conversationId?: string; }; type AgentChatSendMessageResponse = { identifier: string; messageId: string; }; type AgentChatGetEventsArgs = { conversationId: string; }; type AgentChatGetEventsResponse = { events: AgentEventEnvelope[]; /** Cursor for older history. */ olderCursor: string | null; }; declare class AgentChatService { #private; constructor({ httpClient }: { httpClient: HttpClient; }); sendMessage(args: AgentChatSendMessageArgs): Promise; getEvents(args: AgentChatGetEventsArgs): Promise; } declare class BaseModule { #private; _inboxService: InboxService; _emitter: NovuEventEmitter; constructor({ inboxServiceInstance, eventEmitterInstance, }: { inboxServiceInstance: InboxService; eventEmitterInstance: NovuEventEmitter; }); protected onSessionSuccess(_: Session): void; protected onSessionError(_: unknown): void; callWithSession(fn: () => Result): Result; } declare class PreferenceSchedule extends BaseModule { #private; readonly cache: ScheduleCache; constructor({ cache, useCache, inboxServiceInstance, eventEmitterInstance, }: { cache: ScheduleCache; useCache: boolean; inboxServiceInstance: InboxService; eventEmitterInstance: NovuEventEmitter; }); get(): Result; update(args: UpdateScheduleArgs): Result; } declare class Preferences extends BaseModule { #private; readonly cache: PreferencesCache; readonly scheduleCache: ScheduleCache; readonly schedule: PreferenceSchedule; constructor({ useCache, inboxServiceInstance, eventEmitterInstance, }: { useCache: boolean; inboxServiceInstance: InboxService; eventEmitterInstance: NovuEventEmitter; }); list(args?: ListPreferencesArgs): Result; update(args: BasePreferenceArgs): Result; update(args: InstancePreferenceArgs): Result; bulkUpdate(args: Array): Result; bulkUpdate(args: Array): Result; } declare class NotificationsCache { #private; constructor({ emitter, inboxService }: { emitter: NovuEventEmitter; inboxService: InboxService; }); private syncNotificationInBucket; private removeNotification; private handleNotificationEvent; private getAggregated; get(args: ListNotificationsArgs): ListNotificationsResponse | undefined; has(args: ListNotificationsArgs): boolean; set(args: ListNotificationsArgs, data: ListNotificationsResponse): void; unshift(args: ListNotificationsArgs, notification: InboxNotification): void; update(args: ListNotificationsArgs, data: ListNotificationsResponse): void; getAll(args: ListNotificationsArgs): ListNotificationsResponse | undefined; /** * Get unique notifications based on specified filter fields. * The same tags and data can be applied to multiple filters which means that the same notification can be duplicated. */ getUniqueNotifications({ tags, read, data, }: Pick): Array; clear(filter: NotificationFilter): void; clearAll(): void; } declare class Notifications extends BaseModule { #private; readonly cache: NotificationsCache; constructor({ useCache, inboxServiceInstance, eventEmitterInstance, }: { useCache: boolean; inboxServiceInstance: InboxService; eventEmitterInstance: NovuEventEmitter; }); list({ limit, ...restOptions }?: ListNotificationsArgs): Result; count(args?: FilterCountArgs): Result; count(args?: FiltersCountArgs): Result; read(args: BaseArgs): Result; read(args: InstanceArgs): Result; unread(args: BaseArgs): Result; unread(args: InstanceArgs): Result; seen(args: BaseArgs): Result; seen(args: InstanceArgs): Result; archive(args: BaseArgs): Result; archive(args: InstanceArgs): Result; unarchive(args: BaseArgs): Result; unarchive(args: InstanceArgs): Result; delete(args: BaseArgs): Result; delete(args: InstanceArgs): Result; snooze(args: SnoozeArgs): Result; unsnooze(args: BaseArgs): Result; unsnooze(args: InstanceArgs): Result; completePrimary(args: BaseArgs): Result; completePrimary(args: InstanceArgs): Result; completeSecondary(args: BaseArgs): Result; completeSecondary(args: InstanceArgs): Result; revertPrimary(args: BaseArgs): Result; revertPrimary(args: InstanceArgs): Result; revertSecondary(args: BaseArgs): Result; revertSecondary(args: InstanceArgs): Result; readAll({ tags, data, }?: { tags?: NotificationFilter['tags']; data?: Record; }): Result; seenAll(args?: { notificationIds: string[]; } | { tags?: NotificationFilter['tags']; data?: Record; } | {}): Result; archiveAll({ tags, data, }?: { tags?: NotificationFilter['tags']; data?: Record; }): Result; archiveAllRead({ tags, data, }?: { tags?: NotificationFilter['tags']; data?: Record; }): Result; deleteAll({ tags, data, }?: { tags?: NotificationFilter['tags']; data?: Record; }): Result; clearCache({ filter }?: { filter?: NotificationFilter; }): void; triggerHelloWorldEvent(): Promise; } declare class AgentChat extends BaseModule { #private; constructor({ inboxServiceInstance, eventEmitterInstance, agentChatService, }: { inboxServiceInstance: InboxService; eventEmitterInstance: NovuEventEmitter; agentChatService: AgentChatService; }); clearCache(): void; getConversation({ agentId, conversationId, key, }: { agentId: string; conversationId?: string; key?: string; }): { conversationId?: string; messages: AgentMessage[]; key: string; } | undefined; /** * Load the newest history page into the local holder. * The holder key is the public conversation id. */ loadConversation(args: LoadConversationArgs): Result; sendMessage(args: SendMessageArgs): Result; } declare class ChannelConnections extends BaseModule { constructor({ inboxServiceInstance, eventEmitterInstance, }: { inboxServiceInstance: InboxService; eventEmitterInstance: NovuEventEmitter; }); /** * @deprecated Use generateConnectOAuthUrl() instead. For user-level linking use channelEndpoints.generateLinkUserOAuthUrl(). */ generateOAuthUrl(args: GenerateChatOAuthUrlArgs): Result<{ url: string; }>; generateConnectOAuthUrl(args: GenerateConnectOAuthUrlArgs): Result<{ url: string; }>; list(args?: ListChannelConnectionsArgs): Result; get(args: GetChannelConnectionArgs): Result; delete(args: DeleteChannelConnectionArgs): Result; } declare class ChannelEndpoints extends BaseModule { constructor({ inboxServiceInstance, eventEmitterInstance, }: { inboxServiceInstance: InboxService; eventEmitterInstance: NovuEventEmitter; }); generateLinkUserOAuthUrl(args: GenerateLinkUserOAuthUrlArgs): Result<{ url: string; }>; list(args?: ListChannelEndpointsArgs): Result; get(args: GetChannelEndpointArgs): Result; create(args: CreateChannelEndpointArgs): Result; delete(args: DeleteChannelEndpointArgs): Result; link(args: LinkChannelEndpointArgs): Result; } declare class Subscriptions extends BaseModule { #private; readonly cache: SubscriptionsCache; constructor({ useCache, inboxServiceInstance, eventEmitterInstance, subscriber, contextKey, }: { useCache: boolean; inboxServiceInstance: InboxService; eventEmitterInstance: NovuEventEmitter; subscriber: Subscriber; contextKey: string; }); list(args: ListSubscriptionsArgs, options?: Options): Result; get(args: GetSubscriptionArgs, options?: Options): Result; create(args: CreateSubscriptionArgs): Result; update(args: BaseUpdateSubscriptionArgs): Result; update(args: InstanceUpdateSubscriptionArgs): Result; delete(args: BaseDeleteSubscriptionArgs): Result; delete(args: InstanceDeleteSubscriptionArgs): Result; } interface BaseSocketInterface { isSocketEvent(eventName: string): eventName is SocketEventNames; connect(): Result; disconnect(): Result; } declare class Novu implements Pick { #private; readonly notifications: Notifications; readonly preferences: Preferences; readonly subscriptions: Subscriptions; readonly channelConnections: ChannelConnections; readonly channelEndpoints: ChannelEndpoints; readonly agentChat: AgentChat; readonly socket: BaseSocketInterface; on: (eventName: Key, listener: EventHandler) => () => void; /** * @deprecated * Use the cleanup function returned by the "on" method instead. */ off: (eventName: Key, listener: EventHandler) => void; get applicationIdentifier(): string | undefined; get subscriberId(): string | undefined; get context(): Partial> | undefined; get contextHash(): string | undefined; get options(): NovuOptions; get contextKey(): string; constructor(options: NovuOptions); private clearCache; /** * @deprecated */ changeSubscriber(options: { subscriber: Subscriber; subscriberHash?: string; }): Promise; /** * @deprecated */ changeContext(options: { context: Context; contextHash?: string; }): Promise; } export { Novu as N };