import { C as Context, ad as ConnectionMode, ac as WorkflowIdentifierOrId, a3 as TopicSubscription, K as NovuOptions } from '../inbox-service-C1TlfPSW.js'; export { N as Notification } from '../inbox-service-C1TlfPSW.js'; import { B as BellRenderer, N as NotificationClickHandler, a as NotificationActionClickHandler, b as NotificationRenderer, A as AvatarRenderer, S as SubjectRenderer, c as BodyRenderer, D as DefaultActionsRenderer, C as CustomActionsRenderer, d as BaseNovuProviderProps, e as NovuProviderProps, f as AllAppearance, g as AllLocalization, T as Tab, P as PreferencesFilter, h as PreferenceGroups, i as PreferencesSort, R as RouterPush } from '../types-D6UPETwO.js'; export { j as AllAppearanceCallbackFunction, k as AllAppearanceCallbackKeys, l as AllAppearanceKey, m as AllElements, n as AllIconKey, o as AllIconOverrides, p as AllLocalizationKey, q as AllTheme, r as ChannelConnectButtonAppearanceCallback, s as ChannelConnectButtonAppearanceCallbackFunction, t as ChannelConnectButtonAppearanceCallbackKeys, u as ChannelConnectButtonIconKey, E as ElementStyles, I as IconRenderer, v as InboxAppearance, w as InboxAppearanceCallback, x as InboxAppearanceCallbackFunction, y as InboxAppearanceCallbackKeys, z as InboxAppearanceKey, F as InboxElements, G as InboxIconKey, H as InboxIconOverrides, J as InboxLocalization, K as InboxLocalizationKey, L as InboxTheme, M as MsTeamsLinkUserAppearanceCallback, O as MsTeamsLinkUserAppearanceCallbackFunction, Q as MsTeamsLinkUserAppearanceCallbackKeys, U as NotificationStatus, V as SlackLinkUserAppearanceCallback, W as SlackLinkUserAppearanceCallbackFunction, X as SlackLinkUserAppearanceCallbackKeys, Y as SubscriptionAppearance, Z as SubscriptionAppearanceCallback, _ as SubscriptionAppearanceCallbackFunction, $ as SubscriptionAppearanceCallbackKeys, a0 as SubscriptionAppearanceKey, a1 as SubscriptionElements, a2 as SubscriptionIconKey, a3 as SubscriptionIconOverrides, a4 as SubscriptionLocalization, a5 as SubscriptionLocalizationKey, a6 as SubscriptionTheme, a7 as Variables } from '../types-D6UPETwO.js'; import { Placement, OffsetOptions } from '@floating-ui/dom'; import * as solid_js from 'solid-js'; import { ComponentProps } from 'solid-js'; import { MountableElement } from 'solid-js/web'; import { N as Novu } from '../novu-DfErVJJQ.js'; import 'json-logic-js'; type ConnectChatProps = { integrationIdentifier: string; connectionIdentifier?: string; subscriberId?: string; context?: Context; scope?: string[]; connectionMode?: ConnectionMode; onConnectSuccess?: (connectionIdentifier: string) => void; onConnectError?: (error: unknown) => void; onDisconnectSuccess?: () => void; onDisconnectError?: (error: unknown) => void; }; type NotificationRendererProps = { renderNotification: NotificationRenderer; renderAvatar?: never; renderSubject?: never; renderBody?: never; renderDefaultActions?: never; renderCustomActions?: never; }; type SubjectBodyRendererProps = { renderNotification?: never; renderAvatar?: AvatarRenderer; renderSubject?: SubjectRenderer; renderBody?: BodyRenderer; renderDefaultActions?: DefaultActionsRenderer; renderCustomActions?: CustomActionsRenderer; }; type NoRendererProps = { renderNotification?: undefined; renderAvatar?: undefined; renderSubject?: undefined; renderBody?: undefined; renderDefaultActions?: undefined; renderCustomActions?: undefined; }; type InboxProps = { open?: boolean; renderBell?: BellRenderer; onNotificationClick?: NotificationClickHandler; onPrimaryActionClick?: NotificationActionClickHandler; onSecondaryActionClick?: NotificationActionClickHandler; placement?: Placement; placementOffset?: OffsetOptions; } & (NotificationRendererProps | SubjectBodyRendererProps | NoRendererProps); declare enum InboxPage { Notifications = "notifications", Preferences = "preferences" } type InboxContentProps = { onNotificationClick?: NotificationClickHandler; onPrimaryActionClick?: NotificationActionClickHandler; onSecondaryActionClick?: NotificationActionClickHandler; initialPage?: InboxPage; hideNav?: boolean; } & (NotificationRendererProps | SubjectBodyRendererProps | NoRendererProps); type MsTeamsConnectButtonProps = { integrationIdentifier: string; connectionIdentifier?: string; subscriberId?: string; context?: Context; scope?: string[]; connectionMode?: ConnectionMode; /** * When true (default), after the admin consent step completes the OAuth flow automatically * chains into a delegated user-identity step, linking the subscriber who clicked "Connect" * as a personal MS Teams endpoint in the same popup window. * Set to false to perform only the tenant-level admin consent without linking the user. */ autoLinkUser?: boolean; onConnectSuccess?: (connectionIdentifier: string) => void; onConnectError?: (error: unknown) => void; onDisconnectSuccess?: () => void; onDisconnectError?: (error: unknown) => void; connectLabel?: string; connectedLabel?: string; }; type MsTeamsLinkUserProps = { integrationIdentifier: string; connectionIdentifier?: string; subscriberId?: string; context?: Context; onLinkSuccess?: (endpoint: { identifier: string; }) => void; onLinkError?: (error: unknown) => void; onUnlinkSuccess?: () => void; onUnlinkError?: (error: unknown) => void; linkLabel?: string; unlinkLabel?: string; }; type SlackConnectButtonProps = { integrationIdentifier: string; connectionIdentifier?: string; subscriberId?: string; context?: Context; /** * HMAC-SHA256 of the canonicalized `context`, signed with the tenant environment * secret key (the same "Inbox with context" signing). Required when connecting to * a `restricted` agent and the current session did not already verify the context * (e.g. cross-org distribution like the Novu-hosted copilot). Must be minted by an * authenticated backend — never computed in the browser. */ contextHash?: string; scope?: string[]; connectionMode?: ConnectionMode; /** * When true (default), after the workspace connection is created the OAuth * flow also links the subscriber who clicked "Connect" as a personal Slack * endpoint using the authed_user.id already returned by oauth.v2.access. * Set to false to skip the user-linking step and only create the workspace * connection. Raw API callers must pass true explicitly; this component * defaults to true. */ autoLinkUser?: boolean; onConnectSuccess?: (connectionIdentifier: string) => void; onConnectError?: (error: unknown) => void; onDisconnectSuccess?: () => void; onDisconnectError?: (error: unknown) => void; connectLabel?: string; connectedLabel?: string; }; type SlackLinkUserProps = { integrationIdentifier: string; connectionIdentifier?: string; subscriberId?: string; context?: Context; onLinkSuccess?: (endpoint: { identifier: string; }) => void; onLinkError?: (error: unknown) => void; onUnlinkSuccess?: () => void; onUnlinkError?: (error: unknown) => void; linkLabel?: string; unlinkLabel?: string; }; type SubscriptionPreferencesRenderer = (el: HTMLDivElement, subscription?: TopicSubscription, loading?: boolean) => () => void; type WorkflowPreference = { label?: string; workflowId: WorkflowIdentifierOrId; enabled?: boolean; filter?: never; }; type GroupPreference = { label: string; filter: { workflowIds?: Array; workflows?: Array<{ label: string; workflowId: WorkflowIdentifierOrId; }>; tags?: string[]; }; enabled?: boolean; workflowId?: never; }; type UIPreference = WorkflowIdentifierOrId | WorkflowPreference | GroupPreference; type SubscriptionProps = { open?: boolean; placement?: Placement; placementOffset?: OffsetOptions; topicKey: string; identifier?: string; preferences?: Array; renderPreferences?: SubscriptionPreferencesRenderer; }; type SubscriptionButtonWrapperProps = { topicKey: string; identifier?: string; preferences?: Array | undefined; onClick?: (args: { subscription?: TopicSubscription; }) => void; onDeleteError?: (error: unknown) => void; onDeleteSuccess?: () => void; onCreateError?: (error: unknown) => void; onCreateSuccess?: ({ subscription }: { subscription: TopicSubscription; }) => void; }; type SubscriptionPreferencesWrapperProps = { topicKey: string; identifier?: string; preferences: Array | undefined; onClick?: (args: { subscription?: TopicSubscription; }) => void; onDeleteError?: (error: unknown) => void; onDeleteSuccess?: () => void; onCreateError?: (error: unknown) => void; onCreateSuccess?: ({ subscription }: { subscription: TopicSubscription; }) => void; }; type TelegramConnectButtonProps = { integrationIdentifier: string; subscriberId?: string; /** * Context bound to the Telegram endpoint at link time. Falls back to the * `context` configured on `NovuProvider`. */ context?: Context; /** * HMAC-SHA256 of the canonicalized `context`, signed with the tenant environment * secret key (the same "Inbox with context" signing). Required when connecting * with HMAC validation enabled and the current session did not already verify * the context. Must be minted by an authenticated backend — never computed in * the browser. */ contextHash?: string; onConnectSuccess?: (endpointIdentifier: string) => void; onConnectError?: (error: unknown) => void; onDisconnectSuccess?: () => void; onDisconnectError?: (error: unknown) => void; connectLabel?: string; connectedLabel?: string; }; declare const novuComponents: { Inbox: (props: InboxProps) => solid_js.JSX.Element; InboxContent: (props: InboxContentProps) => solid_js.JSX.Element; Bell: solid_js.Component<{ renderBell?: BellRenderer; }>; Notifications: (props: Omit) => solid_js.JSX.Element; Preferences: (props: Omit) => solid_js.JSX.Element; Subscription: (props: SubscriptionProps) => solid_js.JSX.Element; SubscriptionButton: (props: SubscriptionButtonWrapperProps) => solid_js.JSX.Element; SubscriptionPreferences: (props: SubscriptionPreferencesWrapperProps) => solid_js.JSX.Element; ConnectChat: (props: ConnectChatProps) => solid_js.JSX.Element; SlackLinkUser: (props: SlackLinkUserProps) => solid_js.JSX.Element; SlackConnectButton: (props: SlackConnectButtonProps) => solid_js.JSX.Element; MsTeamsLinkUser: (props: MsTeamsLinkUserProps) => solid_js.JSX.Element; MsTeamsConnectButton: (props: MsTeamsConnectButtonProps) => solid_js.JSX.Element; TelegramConnectButton: (props: TelegramConnectButtonProps) => solid_js.JSX.Element; }; type NovuComponentName = keyof typeof novuComponents; type NovuUIOptions = NovuProviderProps; type BaseNovuUIOptions = BaseNovuProviderProps; declare class NovuUI { #private; id: string; constructor(props: NovuProviderProps); mountComponent({ name, element, props: componentProps, }: { name: T; element: MountableElement; props?: ComponentProps<(typeof novuComponents)[T]>; }): void; unmountComponent(element: MountableElement): void; updateNovu(novu: Novu): void; updateAppearance(appearance?: AllAppearance): void; updateLocalization(localization?: AllLocalization): void; updateOptions(options: NovuOptions): void; updateTabs(tabs?: Array): void; updatePreferencesFilter(preferencesFilter?: PreferencesFilter): void; updatePreferenceGroups(preferenceGroups?: PreferenceGroups): void; updatePreferencesSort(preferencesSort?: PreferencesSort): void; updateRouterPush(routerPush?: RouterPush): void; updateContainer(container?: Node | string | null): void; unmount(): void; } export { AllAppearance, AllLocalization, type BaseNovuUIOptions, BellRenderer, BodyRenderer, type ConnectChatProps, InboxPage, type InboxProps, type MsTeamsConnectButtonProps, type MsTeamsLinkUserProps, NotificationActionClickHandler, NotificationClickHandler, NotificationRenderer, NovuProviderProps, NovuUI, type NovuUIOptions, PreferenceGroups, PreferencesFilter, PreferencesSort, RouterPush, type SlackConnectButtonProps, type SlackLinkUserProps, SubjectRenderer, type SubscriptionButtonWrapperProps, type SubscriptionPreferencesWrapperProps, type SubscriptionProps, Tab, type TelegramConnectButtonProps };