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<BaseMessageConfig>) => 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<NotificationConfig>) => void;
}
export type { NotifyMessageOptions, NotifyMessageCardFields, NotifyMessageStackGroup } from '../../shared/types/message';
export type { NotificationCardProps } from '../Notification';
//# sourceMappingURL=Message.types.d.ts.map