import { type ComponentType } from "react"; import { type INotification } from "@gooddata/sdk-model"; import { type GoodDataSdkError, type UseCancelablePromiseStatus } from "@gooddata/sdk-ui"; import { type INotificationsPanelHeaderComponentProps } from "./DefaultNotificationsPanelHeader.js"; import { type INotificationComponentProps } from "../Notification/DefaultNotification.js"; import { type INotificationsListComponentProps } from "../NotificationsList/DefaultNotificationsList.js"; import { type INotificationsListEmptyStateComponentProps } from "../NotificationsList/DefaultNotificationsListEmptyState.js"; import { type INotificationsListErrorStateComponentProps } from "../NotificationsList/DefaultNotificationsListErrorState.js"; import { type INotificationSkeletonItemComponentProps } from "../NotificationsList/DefaultSkeletonItem.js"; import { type INotificationsPanelView } from "../types.js"; export declare const NOTIFICATIONS_PANEL_ID = "gd-ui-ext-notifications-panel-id"; /** * NotificationsPanel component props. * * @public */ export interface INotificationsPanelComponentProps { /** * Custom notifications panel header component. */ NotificationsPanelHeader: ComponentType; /** * Custom notifications list component. */ NotificationsList: ComponentType; /** * Custom notifications list empty state component. */ NotificationsListEmptyState: ComponentType; /** * Custom notifications list error state component. */ NotificationsListErrorState: ComponentType; /** * Custom notification component. */ Notification: ComponentType; /** * Custom notification skeleton item component. */ NotificationSkeletonItem: ComponentType; /** * The callback to toggle the notifications panel. */ toggleNotificationsPanel: () => void; /** * The callback to open the notifications panel. */ openNotificationsPanel: () => void; /** * The callback to close the notifications panel. */ closeNotificationsPanel: () => void; /** * The currently active view of the notifications panel. */ activeView: INotificationsPanelView; /** * The callback to change the active view of the notifications panel. */ changeActiveView: (view: INotificationsPanelView) => void; /** * The callback to mark a notification as read. */ markNotificationAsRead: (notificationId: string) => Promise; /** * The callback to mark all notifications as read. */ markAllNotificationsAsRead: () => Promise; /** * The number of unread notifications. */ unreadNotificationsCount: number; /** * Indicates if there are unread notifications. */ hasUnreadNotifications: boolean; /** * Loaded notifications, relevant for the currently active view. */ activeNotifications: INotification[]; /** * The callback to handle a notification click. */ onNotificationClick?: (notification: INotification) => void; /** * The status of the notifications loading. */ status: UseCancelablePromiseStatus; /** * The error that occurred while loading notifications. */ error?: GoodDataSdkError; /** * The callback to load the next page of notifications. */ loadNextPage: () => void; /** * Indicates if there is a next page of notifications. */ hasNextPage: boolean; /** * The height of the notification item in pixels. */ itemHeight: number; /** * Gap between notification items in pixels. */ itemsGap: number; /** * Padding of the notification item (from left/right) in pixels. */ itemPadding: number; /** * Number of skeleton items to render when loading notifications. */ skeletonItemsCount: number; /** * Maximum height of the notifications list in pixels. */ maxListHeight?: number; } /** * Default implementation of the NotificationsPanel component. * * @public */ export declare function DefaultNotificationsPanel({ NotificationsPanelHeader, NotificationsList, NotificationsListEmptyState, NotificationsListErrorState, Notification, NotificationSkeletonItem, activeView, changeActiveView, markNotificationAsRead, markAllNotificationsAsRead, unreadNotificationsCount, hasUnreadNotifications, activeNotifications, onNotificationClick, closeNotificationsPanel, status, error, loadNextPage, hasNextPage, itemHeight, itemsGap, itemPadding, skeletonItemsCount, maxListHeight }: INotificationsPanelComponentProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=DefaultNotificationsPanel.d.ts.map