/**
 * @internal
 *
 * Renders a single notification card inside the `<Notification>` portal container.
 * Not part of the public API — consumers call `showNotification(params)` to trigger
 * notifications and configure appearance via `<Notification>` component props.
 *
 * Layout:
 * ```
 * [icon]  Title                    date  [×]
 *         Description text here.
 *         Cancel   Submit
 * ```
 *
 * The icon column accepts:
 * - A named icon string → rendered via `<Icon>`
 * - Any ReactNode (img, Avatar, etc.) → rendered as-is
 * - Omitted → falls back to `"user"` icon
 *
 * Action buttons are opt-in: a button only renders when both its label text
 * AND its callback are present (`cancelText + onClose`, `submitText + onSubmit`).
 */
import { FC, ReactNode } from 'react';
import { NotificationPositions, NotificationSizes } from '../types';
import { ColorsKeys } from '../../../types/emotion';
import { NotificationStyleOverrides, NotificationVariants } from './types';
export interface NotificationItemProps {
    id: string;
    variant: NotificationVariants;
    /**
     * Solid background color. When provided, variant token colors are ignored and
     * text/icon/border colors are auto-derived for contrast.
     */
    color?: ColorsKeys | string;
    /** Pre-formatted timestamp string (e.g. `"11 days ago"`). */
    date?: string;
    /**
     * Icon for the left column.
     * - `string` → rendered as a named `<Icon>`
     * - `ReactNode` → rendered as-is
     * - omitted → falls back to `"user"` icon
     */
    icon?: string | ReactNode;
    title?: string;
    description?: string;
    cancelText: string;
    submitText: string;
    size: NotificationSizes;
    withShadow?: boolean;
    withBorder?: boolean;
    animationDuration: number;
    position: NotificationPositions;
    /** `undefined` = no auto-dismiss */
    timeout?: number;
    onClose?: () => void;
    onSubmit?: () => void;
    onRemove: (id: string) => void;
    styleOverrides?: NotificationStyleOverrides;
}
export declare const NotificationItem: FC<NotificationItemProps>;
