import type { ConfigUISchema } from './config-ui.js';
/**
 * A notification to be sent through configured output channels.
 */
export interface Notification {
    readonly title: string;
    readonly message: string;
    readonly severity: 'info' | 'warning' | 'critical';
    readonly category: string;
    readonly data?: Record<string, unknown>;
    readonly imageUrl?: string;
    readonly deviceId?: number;
    readonly timestamp: number;
}
/**
 * A toast notification for the admin UI.
 */
export interface Toast {
    readonly title: string;
    readonly message: string;
    readonly severity: 'info' | 'warning' | 'critical';
    readonly duration?: number;
    readonly action?: {
        readonly label: string;
        readonly url: string;
    };
}
/**
 * Service interface for broadcasting toast notifications to connected clients.
 */
export interface IToastService {
    broadcast(toast: Toast): void;
    sendToUser(userId: string, toast: Toast): void;
}
/**
 * Pluggable notification output channel.
 * Each addon implements a notification channel (Telegram, webhook, email, etc.).
 */
export interface INotificationOutput {
    readonly id: string;
    readonly name: string;
    readonly icon: string;
    /** Send a notification */
    send(notification: Notification): Promise<void>;
    /** Test the notification channel */
    sendTest?(): Promise<{
        success: boolean;
        error?: string;
    }>;
    /** Config schema for the admin UI */
    getConfigSchema?(): ConfigUISchema;
}
//# sourceMappingURL=notification.d.ts.map