import { ReactNode } from 'react';

export type DrawerAnchor = 'left' | 'right' | 'top' | 'bottom';
export interface NotificationTabItem {
    label: string;
    value: string;
}
export interface NotificationPanelItem {
    id: number;
    value: string;
    notificationList?: ReactNode;
    handleSettingClick?: () => void;
    filterChip?: unknown;
    selectedFilterChip?: unknown;
    handleApplyFilter?: () => void;
    isMultiSelectFilter?: boolean;
    [key: string]: unknown;
}
export interface NotificationBadgeList {
    id: number;
    value: string;
    lists?: {
        id: number;
        label: string;
        numberOfTypes?: number;
        handleClick?: () => void;
        onClick?: () => void;
    }[];
}
export interface NotificationProps {
    title?: ReactNode;
    anchor?: DrawerAnchor;
    isOpen: boolean;
    setIsOpen?: (open: boolean) => void;
    className?: string;
    handleClose?: () => void;
    secondaryButtonLabel?: string;
    onSecondaryButtonClick?: () => void;
    primaryButtonLabel?: string;
    onPrimaryButtonClick?: () => void;
    onSettingButtonClick?: () => void;
    handleSelectAll?: () => void;
    handleMarkReadAll?: () => void;
    handleMoveAllPending?: () => void;
    handleNotificationDeleteAll?: () => void;
    badgesList?: NotificationBadgeList[];
    notificationTabs?: NotificationTabItem[];
    notificationPanels?: NotificationPanelItem[];
    setNotificationPanels?: (panels: NotificationPanelItem[]) => void;
    handleTabChange?: (value: string) => void;
    moveToPendingDropdownOptions?: unknown;
    activeNotiTab?: string;
    activeBadge?: string;
    showBadgeLoader?: boolean;
    showNotificationListLoader?: boolean;
    displayFormat?: string;
    onNotificationScrollToBottom?: () => void;
    scrollThreshold?: number;
    isWithSearch?: boolean;
    isHoverOnCard?: boolean;
    isChipsExpandable?: boolean;
    isDeleteAlwaysVisible?: boolean;
    isEmptyState?: boolean;
    emptyStateTitle?: string;
    emptyStateDescription?: string;
    customNotificationJsx?: ReactNode;
    /** Optional body component (e.g. for testing); defaults to NotificationBody */
    NotificationBodyComponent?: React.ComponentType<Record<string, unknown>>;
}
//# sourceMappingURL=Notification.types.d.ts.map