/**
 * Notification item interface
 *
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export interface NotificationItem {
    /** Unique notification ID */
    id: string;
    /** Notification title */
    title: string;
    /** Notification message/description */
    message?: string;
    /** Notification type for styling */
    type?: 'info' | 'success' | 'warning' | 'error';
    /** Whether the notification has been read */
    read?: boolean;
    /** Timestamp when notification was created */
    timestamp?: Date;
    /** Action URL or path */
    actionUrl?: string;
    /** Custom action handler */
    onAction?: () => void;
    /** Avatar/icon for the notification */
    avatar?: string;
}
/**
 * Props for the Notifications component
 *
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export interface NotificationsProps {
    /** Array of notification items */
    notifications?: NotificationItem[];
    /** Total unread notification count */
    count?: number;
    /** Whether notifications are currently loading */
    loading?: boolean;
    /** Callback when notification is dismissed from toast */
    onNotificationClick?: (notification: NotificationItem) => void;
    /** Callback when dropdown opens */
    onDropdownOpen?: () => void;
    /** Maximum number of visible notifications */
    maxVisible?: number;
    /** Additional CSS classes */
    className?: string;
    /** Whether to show notification bell even when count is 0 */
    alwaysShow?: boolean;
    /** Size variant */
    size?: 'sm' | 'md' | 'lg';
    /** Whether the component is disabled */
    disabled?: boolean;
}
/**
 * Notifications component - notification bell with dropdown
 *
 * Features:
 * - Badge count display with proper formatting
 * - Dropdown notification list
 * - Real-time notification updates
 * - Mark as read functionality
 * - Different notification types with styling
 * - Responsive design
 * - Keyboard navigation support
 * - Loading states
 * - Empty states
 * - Time formatting for timestamps
 *
 * This component provides a complete notification system that can be
 * easily integrated into any layout header or navigation area.
 *
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 * @param props - Notifications component props
 * @returns React component
 *
 * @example
 * ```tsx
 * // Basic usage
 * <Notifications count={3} />
 *
 * // With full notification data
 * <Notifications
 * notifications={[
 * {
 * id: '1',
 * title: 'New message',
 * message: 'You have a new message from John',
 * type: 'info',
 * timestamp: new Date(),
 * }
 * ]}
 * onNotificationClick={handleNotificationClick}
 * />
 *
 * // Custom styling and behavior
 * <Notifications
 * count={notifications.filter(n => !n.read).length}
 * maxVisible={5}
 * onMarkAllRead={markAllAsRead}
 *
 * />
 * ```
 *
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare const Notifications: ({ notifications, count, loading, onNotificationClick, onDropdownOpen, className, maxVisible, alwaysShow, size, disabled, }: NotificationsProps) => import("react/jsx-runtime").JSX.Element | null;
export default Notifications;
//# sourceMappingURL=Notifications.d.ts.map