import { type VariantProps } from 'class-variance-authority';
import type * as React from 'react';
declare const notificationDotVariants: (props?: ({
    size?: "sm" | "md" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export type NotificationPanelItemType = 'message' | 'meeting' | 'task' | 'system';
export interface NotificationPanelAction {
    /** Label for the action button */
    label: string;
    /** Callback when action is clicked */
    onClick?: () => void;
    /** Whether this is the primary action */
    primary?: boolean;
}
export interface NotificationPanelItemProps {
    /** Unique identifier for the notification */
    id: string;
    /** Avatar image source */
    avatarSrc?: string;
    /** Avatar fallback text (for initials) */
    avatarFallback?: string;
    /** Name of the sender/source */
    name: string;
    /** Time since notification was received */
    time: string;
    /** Title/heading of the notification */
    title: string;
    /** Description/body text */
    description?: string;
    /** Whether the notification is unread */
    unread?: boolean;
    /** Show online status indicator on avatar */
    showOnlineStatus?: boolean;
    /** Type of notification */
    type?: NotificationPanelItemType;
    /** Meeting date (for meeting type) */
    meetingDate?: string;
    /** Meeting time (for meeting type) */
    meetingTime?: string;
    /** Actions available for this notification */
    actions?: NotificationPanelAction[];
    /** Highlighted text segments in description */
    highlightedSegments?: Array<{
        text: string;
        highlighted: boolean;
    }>;
    /** Callback when notification item is clicked */
    onClick?: () => void;
    /** Additional CSS classes */
    className?: string;
}
declare function NotificationPanelItem({ avatarSrc, avatarFallback, name, time, title, description, unread, showOnlineStatus, type, meetingDate, meetingTime, actions, highlightedSegments, onClick, className, }: NotificationPanelItemProps): import("react/jsx-runtime").JSX.Element;
declare namespace NotificationPanelItem {
    var displayName: string;
}
export interface NotificationSectionProps {
    /** Section title (e.g., "Today", "Previous") */
    title: string;
    /** Notifications in this section */
    children: React.ReactNode;
    /** Additional CSS classes */
    className?: string;
}
declare function NotificationSection({ title, children, className, }: NotificationSectionProps): import("react/jsx-runtime").JSX.Element;
declare namespace NotificationSection {
    var displayName: string;
}
declare const notificationPanelVariants: (props?: ({
    variant?: "mobile" | "desktop" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export interface NotificationPanelProps extends VariantProps<typeof notificationPanelVariants> {
    /** Title of the panel */
    title?: string;
    /** Callback when settings button is clicked */
    onSettingsClick?: () => void;
    /** Callback when "Mark all read" is clicked */
    onMarkAllRead?: () => void;
    /** Callback when "Clear all" is clicked */
    onClearAll?: () => void;
    /** Callback when close button is clicked */
    onClose?: () => void;
    /** Panel content (NotificationSection or NotificationItem components) */
    children: React.ReactNode;
    /** Whether to show overlay background (mobile variant) */
    showOverlay?: boolean;
    /** Fixed width for desktop variant */
    width?: number;
    /** Fixed height for the panel */
    height?: number;
    /** Additional CSS classes */
    className?: string;
}
declare function NotificationPanel({ title, variant, onSettingsClick, onMarkAllRead, onClearAll, onClose, children, showOverlay, width, height, className, }: NotificationPanelProps): import("react/jsx-runtime").JSX.Element;
declare namespace NotificationPanel {
    var displayName: string;
}
export { NotificationPanel, NotificationPanelItem, NotificationSection, notificationDotVariants, notificationPanelVariants, };
