import { ID, NotificationActivityType, NotificationStatus, NotificationSubTabType, NotificationTabState, NotificationTabType, NotificationView, NotificationViewUIState, User, ZeniUrl } from '@zeniai/client-epic-state';
import { DisableMode } from '../formElements/common/common';
import { CommentsNotificationsListSectionFormData } from './table/commentsNotificationsListRow/CommentsNotificationsListGroupRow';
import { NotificationsListSectionFormData } from './table/notificationsListRow/NotificationsListGroupRow';
/**
 * Component & its Props
 */
export interface NotificationsPageProps {
    isNotificationSettingsVisible: boolean;
    notificationView: NotificationView;
    users: User[];
    isAiCfoAccessEnabled?: boolean;
    isDisabled?: DisableMode;
    onBackClick: () => void;
    onCommentNotificationClick: (id: ID, notificationUrl: ZeniUrl, notificationStatus: NotificationStatus) => void;
    onFetchMoreNotifications: (currentTab: NotificationTabType, currentSubTab: NotificationSubTabType) => void;
    onMarkAllNotificationsAsRead: (currentTab: NotificationTabType) => void;
    onNotificationClick: (id: ID, entityId: ID, notificationStatus: NotificationStatus, activityType?: NotificationActivityType) => void;
    onSettingsClick: () => void;
    onUpdateNotificationStatus: (currentTab: NotificationTabType, selectedNotificationIds: ID[], newStatus: NotificationStatus, selectedOldStatusNotificationIds: ID[]) => void;
    onUpdateNotificationTabState: (notificationTabState: Partial<NotificationTabState>, tab: NotificationTabType) => void;
    onUpdateNotificationViewCurrentTabAndSubTab: (newTab: NotificationTabType, newSubTab?: NotificationSubTabType) => void;
    onUpdateNotificationViewSubTab: (newSubTab: NotificationSubTabType) => void;
    onUpdateNotificationViewUIState: (notificationTabState: Partial<NotificationViewUIState>, tab: NotificationTabType) => void;
    onAskAiCfoClick?: () => void;
}
declare const commentsNotificationsTableSectionId = "commentsNotificationsTable";
declare const notificationsTableSectionId = "notificationsTable";
export interface FormData {
    [commentsNotificationsTableSectionId]: CommentsNotificationsListSectionFormData;
    [notificationsTableSectionId]: NotificationsListSectionFormData;
}
declare const NotificationsPage: ({ notificationView, users, isNotificationSettingsVisible, isDisabled, onNotificationClick, onCommentNotificationClick, onUpdateNotificationViewUIState, onUpdateNotificationTabState, onUpdateNotificationViewCurrentTabAndSubTab, onUpdateNotificationViewSubTab, onFetchMoreNotifications, onUpdateNotificationStatus, onSettingsClick, onBackClick, onMarkAllNotificationsAsRead, isAiCfoAccessEnabled, onAskAiCfoClick, }: NotificationsPageProps) => import("react/jsx-runtime").JSX.Element;
export default NotificationsPage;
/**
 * Helpers
 */
export declare const uniqueFormName: (sectionId: ID) => `${string}_form`;
export declare const getSelectedNotificationIds: (formData: CommentsNotificationsListSectionFormData, notificationsForCurrentTab: ID[]) => ID[];
