import { MantineSize, FloatingPosition } from '@mantine/core';
import { CSSProperties, ReactNode } from 'react';
export interface ArchbaseNotificationItem {
    id: string;
    title: string;
    message: string;
    type?: 'info' | 'success' | 'warning' | 'error';
    read: boolean;
    createdAt: Date;
    icon?: ReactNode;
    action?: {
        label: string;
        onClick: () => void;
    };
    metadata?: Record<string, any>;
}
export interface ArchbaseNotificationCenterProps {
    /** Lista de notificacoes a exibir */
    notifications: ArchbaseNotificationItem[];
    /** Callback ao marcar uma notificacao como lida */
    onMarkAsRead?: (id: string) => void;
    /** Callback ao marcar todas como lidas */
    onMarkAllAsRead?: () => void;
    /** Callback ao remover uma notificacao */
    onRemove?: (id: string) => void;
    /** Callback ao limpar todas as notificacoes */
    onClearAll?: () => void;
    /** Callback ao clicar em uma notificacao */
    onClick?: (notification: ArchbaseNotificationItem) => void;
    /** Modo de renderizacao: popover ou drawer */
    renderAs?: 'drawer' | 'popover';
    /** Posicao do popover (ignorado no modo drawer) */
    position?: FloatingPosition;
    /** Largura do painel */
    width?: number;
    /** Altura maxima da area de scroll */
    maxHeight?: number;
    /** Titulo do painel */
    title?: string;
    /** Mensagem quando nao ha notificacoes */
    emptyMessage?: string;
    /** Mostrar badge com contagem de nao-lidas */
    showBadge?: boolean;
    /** Tamanho do botao */
    buttonSize?: MantineSize;
    /** Variante do botao */
    buttonVariant?: string;
    /** Estilo customizado do wrapper */
    style?: CSSProperties;
    /** Classe CSS customizada */
    className?: string;
}
export declare function ArchbaseNotificationCenter(props: ArchbaseNotificationCenterProps): import("react/jsx-runtime").JSX.Element;
export declare namespace ArchbaseNotificationCenter {
    var displayName: string;
}
