import { BaseMessageOptions, BaseMessageConfig, MessageColor, NotifyMessageOptions, NotifyMessageStackGroup, NotificationConfig } from '../../shared/types/message'; type MessageInput = string | (BaseMessageOptions & { message?: string; }); /** * Contrato imperativo del sistema de toasts (mensajes temporarios vía `Alert`). * * Los métodos devuelven el `id` numérico del mensaje encolado (útil para cerrarlo con `dismiss`). */ export interface ToastServiceAPI { /** * Muestra un toast con color y opciones explícitas. * * @param messageOrOptions - Texto corto (título) o objeto con `message`, `title`, callbacks, etc. * @param color - Intención visual cuando el primer argumento es string u objeto sin color implícito. * @param options - Opciones adicionales si el primero es string. * @returns Identificador del toast. */ show: (messageOrOptions: MessageInput, color?: MessageColor, options?: BaseMessageOptions) => number; /** Toast de éxito (`success`). */ success: (messageOrOptions: MessageInput, options?: BaseMessageOptions) => number; /** Toast de error (`danger` en `Alert`). */ error: (messageOrOptions: MessageInput, options?: BaseMessageOptions) => number; /** Toast informativo. */ info: (messageOrOptions: MessageInput, options?: BaseMessageOptions) => number; /** Toast de advertencia. */ warning: (messageOrOptions: MessageInput, options?: BaseMessageOptions) => number; /** Toast neutro. */ neutral: (messageOrOptions: MessageInput, options?: BaseMessageOptions) => number; /** Toast con acento de marca (`brand` → mapeo visual en el item). */ brand: (messageOrOptions: MessageInput, options?: BaseMessageOptions) => number; /** * Inicia la animación de salida y retira el toast por `id`. * * @param id - Identificador devuelto por `show` / `success` / etc. */ dismiss: (id: number) => void; /** * Fusiona opciones por defecto del servicio (posición, duración, variantes, etc.). * * @param options - Parcial de `BaseMessageConfig` aplicado sobre la configuración actual. */ configure: (options: Partial) => void; } /** * Contrato imperativo de notificaciones agrupadas por mazo (`stackKey`: `primary`, `secondary`, `auto`, …). * * Encola tarjetas compatibles con el organismo `Notification` y gestiona cola + temporizador por grupo. */ export interface NotificationServiceAPI { /** * Encola una notificación en el mazo que corresponda a `stackGroup` / opciones (API `notify.message`). * * @param options - Payload unificado (`NotifyMessageOptions`): título, apariencia, CTA, `notificationCard`, etc. * @returns Identificador de la notificación encolada. */ message: (options: NotifyMessageOptions) => number; /** * Cierra una notificación concreta dentro de su cola. * * @param id - Identificador devuelto por `message`. */ dismiss: (id: number) => void; /** * Vacía el mazo explícito `primary` o `secondary` (alias de vaciar por clave de mazo). * * @param stackGroup - `'primary' | 'secondary'`. */ dismissGroup: (stackGroup: NotifyMessageStackGroup) => void; /** * Vacía el mazo identificado por la clave interna (`primary`, `secondary`, `auto`, u otras claves resueltas). * * @param stackKey - Clave del grupo en el servicio (p. ej. `'auto'` para el mazo por defecto). */ dismissStack: (stackKey: string) => void; /** * Fusiona opciones globales del servicio de notificaciones (posición, `stackMax`, duración, barra de tiempo, etc.). * * @param options - Parcial de `NotificationConfig`. */ configure: (options: Partial) => void; } export type { NotifyMessageOptions, NotifyMessageCardFields, NotifyMessageStackGroup, } from '../../shared/types/message'; export type { NotificationCardProps } from '../Notification'; //# sourceMappingURL=Message.types.d.ts.map