import React, { ReactNode } from 'react'; import { type NotificationPosition, type NotificationEmphasis, type IconName, FeedbackColors } from '../index'; export interface NotificationAction { label: string; onClick: () => void; } export interface NotificationOptions { id?: string; heading?: string; message?: string; dismissible?: boolean; emphasis?: `${NotificationEmphasis}`; feedback?: `${FeedbackColors}`; icon?: `${IconName}`; actions?: NotificationAction[]; actionSlot?: React.ReactElement; duration?: number; } export interface Notification extends NotificationOptions { createdAt: number; ref: React.RefObject; } export interface NotificationContextValue { notifications: Notification[]; show: (options: NotificationOptions) => string; dismiss: (id: string) => void; remove: (id: string) => void; removeAll: () => void; } export interface NotificationProviderProps { children: ReactNode; position?: `${NotificationPosition}`; maxNotifications?: number; className?: string; } export declare const NotificationProvider: React.FC; export declare const useNotifications: () => NotificationContextValue;