import type { HTMLAttributes, ElementType } from 'react'; export interface AlertProps extends Omit, 'role'> { children: React.ReactNode; variant?: 'filled' | 'soft'; severity?: 'info' | 'success' | 'warning' | 'error'; size?: 'small' | 'medium' | 'large'; icon?: React.ReactNode | boolean; title?: string; closable?: boolean; onClose?: () => void; action?: React.ReactNode; role?: 'alert' | 'alertdialog' | 'status'; autoFocus?: boolean; ariaLive?: 'polite' | 'assertive' | 'off'; ariaAtomic?: boolean; id?: string; IconInfo?: ElementType; IconSuccess?: ElementType; IconWarning?: ElementType; IconError?: ElementType; IconClose?: ElementType; } export interface AlertIconProps { severity: 'info' | 'success' | 'warning' | 'error'; size: 'small' | 'medium' | 'large'; IconInfo?: ElementType; IconSuccess?: ElementType; IconWarning?: ElementType; IconError?: ElementType; } export interface CloseButtonProps { onClick: () => void; size: 'small' | 'medium' | 'large'; variant: 'filled' | 'soft'; severity: 'info' | 'success' | 'warning' | 'error'; IconClose?: ElementType; }