/**
 * Notification System Types
 *
 * Config-driven toast notifications that surface adaptive events
 * (FAQ triggers, nav suggestions) above the launcher button.
 */
/**
 * A declarative rule on a TileConfig that maps an EventBus event
 * to a toast notification.
 */
export interface TileNotificationRule {
    /** EventBus event name to match (exact string or regex pattern) */
    on: string;
    /** Toast title — supports {{props.x}} template interpolation */
    title: string;
    /** Toast body text — supports {{props.x}} template interpolation */
    body?: string;
    /** Lucide icon name or emoji (falls back to tile icon if omitted) */
    icon?: string;
    /** Auto-dismiss duration in ms (default: 8000) */
    ttl?: number;
    /** Deep link target when user clicks the toast */
    deepLink?: NotificationDeepLink;
    /** Cooldown in ms before the same rule can fire again (default: 30000) */
    cooldown?: number;
}
/**
 * What happens when a user clicks a notification toast.
 */
export interface NotificationDeepLink {
    /** Tile ID to navigate to */
    tileId: string;
    /** Item-level target — supports {{props.x}} interpolation */
    itemId?: string;
}
/**
 * An active (visible) notification in the toast queue.
 */
export interface ActiveNotification {
    /** Unique ID for React key */
    id: string;
    /** Resolved title (templates already interpolated) */
    title: string;
    /** Resolved body (templates already interpolated) */
    body?: string;
    /** Icon name or emoji */
    icon?: string;
    /** Source tile ID (for dedup) */
    tileId: string;
    /** Resolved deep link item ID */
    itemId?: string;
    /** When this toast expires (Date.now() + ttl) */
    expiresAt: number;
    /** When this toast was created */
    createdAt: number;
    /** TTL for progress bar calculation */
    ttl: number;
}
/** Max number of visible toasts at once */
export declare const MAX_VISIBLE_TOASTS = 3;
/** Default auto-dismiss duration in ms */
export declare const DEFAULT_TTL = 8000;
/** Default cooldown between same rule firing in ms */
export declare const DEFAULT_COOLDOWN = 30000;
