import type { ReactNode } from 'react'; import { type LucideIcon } from 'lucide-react'; /** * Props recomendadas para `` de metacore-ui: los toasts viven arriba a * la derecha (el área de acciones primarias suele estar abajo) y dejan hueco * bajo la cabecera. Se propagan tal cual: ``. */ export declare const ACTION_SAFE_TOASTER_PROPS: { position: "top-right"; offset: number; mobileOffset: number; visibleToasts: number; }; /** Duración de un toast de éxito (ms): confirma y se va. */ export declare const SUCCESS_TOAST_MS = 3000; export declare const notify: { /** Confirmación breve de un éxito («Pago registrado»). Admite «Deshacer». */ success(message: string, opts?: { undo?: { label?: string; onUndo: () => void; }; description?: string; }): string | number; /** * Error inesperado (red, 5xx) sin campo al que atribuirlo. Los errores de * validación NO van aquí: usa `mapApiError` + ``/error del input. */ error(message: string, description?: string): string | number; }; export interface SystemNoticeBannerProps { message: ReactNode; /** Acción opcional («Actualizar»). */ action?: { label: string; onClick: () => void; }; onDismiss?: () => void; dismissLabel?: string; className?: string; } /** Aviso del sistema en flujo normal de la página (no flota sobre botones). */ export declare function SystemNoticeBanner({ message, action, onDismiss, dismissLabel, className }: SystemNoticeBannerProps): import("react").JSX.Element; export interface FormErrorBannerProps { /** Qué pasó y cómo corregirlo (típicamente `mapApiError(...).form`). */ message?: string; /** Botón a la solución («Ir al campo», «Reintentar»). */ action?: { label: string; onClick: () => void; }; className?: string; } /** Error persistente de formulario; no renderiza nada sin `message`. */ export declare function FormErrorBanner({ message, action, className }: FormErrorBannerProps): import("react").JSX.Element | null; export interface EmptyStateProps { icon?: LucideIcon; /** Qué falta («Aún no hay movimientos para este producto»). */ title: string; description?: string; /** Acción primaria («Registrar saldo inicial»). Se oculta si `hidden`. */ action?: { label: string; onClick?: () => void; href?: string; hidden?: boolean; }; className?: string; } /** Estado vacío accionable: explicación + una acción primaria. */ export declare function EmptyState({ icon: Icon, title, description, action, className }: EmptyStateProps): import("react").JSX.Element; //# sourceMappingURL=feedback.d.ts.map