import { type ComponentType } from "react"; import { type INotification } from "@gooddata/sdk-model"; import { type GoodDataSdkError, type UseCancelablePromiseStatus } from "@gooddata/sdk-ui"; import { type INotificationsListEmptyStateComponentProps } from "./DefaultNotificationsListEmptyState.js"; import { type INotificationsListErrorStateComponentProps } from "./DefaultNotificationsListErrorState.js"; import { type INotificationSkeletonItemComponentProps } from "./DefaultSkeletonItem.js"; import { type INotificationComponentProps } from "../Notification/DefaultNotification.js"; import { type INotificationsPanelView } from "../types.js"; /** * Props for the NotificationsList component. * * @public */ export interface INotificationsListComponentProps { /** * Component to render when the notifications list is empty. */ NotificationsListEmptyState: ComponentType; /** * Component to render when the notifications list is in error state. */ NotificationsListErrorState: ComponentType; /** * Component to render each notification. */ Notification: ComponentType; /** * Component to render each skeleton item. */ NotificationSkeletonItem: ComponentType; /** * Active view of the notifications list. */ activeView: INotificationsPanelView; /** * Status of the notifications list. */ status: UseCancelablePromiseStatus; /** * Error to display. */ error?: GoodDataSdkError; /** * Loaded notifications relevant to the active view. */ activeNotifications?: INotification[]; /** * Callback function to mark notification as read. */ markNotificationAsRead: (notificationId: string) => Promise; /** * Callback function to handle notification click. */ onNotificationClick?: (notification: INotification) => void; /** * Whether there is a next page of notifications. */ hasNextPage: boolean; /** * Load next page of notifications. */ loadNextPage: () => void; /** * 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; /** * Callback function to close the notifications panel. */ closeNotificationsPanel: () => void; } /** * Default implementation of the NotificationsList component. * * @public */ export declare function DefaultNotificationsList({ Notification, NotificationsListEmptyState, NotificationsListErrorState, NotificationSkeletonItem, activeView, status, error, activeNotifications, markNotificationAsRead, onNotificationClick, hasNextPage, loadNextPage, itemHeight, itemsGap, itemPadding, skeletonItemsCount, maxListHeight, closeNotificationsPanel }: INotificationsListComponentProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=DefaultNotificationsList.d.ts.map