/**
 * Notification Manager - Cross-platform system notifications
 *
 * Sends native notifications on macOS, Linux, and Windows
 *
 * IMPORTANT: Use sendStandardNotification() for consistent, explicit notifications!
 * See notification-constants.ts for the standard notification types and messages.
 */
import { Logger } from './logger.js';
import { NotificationType, NotificationContext } from './notification-constants.js';
export declare class NotificationManager {
    private logger;
    constructor(options?: {
        logger?: Logger;
    });
    /**
     * Sends a system notification (cross-platform)
     *
     * @param title - Notification title
     * @param body - Notification message
     * @param sound - Optional sound name (macOS only)
     */
    sendNotification(title: string, body: string, sound?: string): Promise<void>;
    /**
     * Sends notification on macOS using osascript (NON-BLOCKING)
     *
     * CRITICAL: Fire-and-forget pattern to prevent blocking Claude Code!
     * Notifications are informational only and should NEVER block execution.
     */
    private sendMacOSNotification;
    /**
     * Sends notification on Linux using notify-send (NON-BLOCKING)
     *
     * CRITICAL: Fire-and-forget pattern to prevent blocking Claude Code!
     * Notifications are informational only and should NEVER block execution.
     */
    private sendLinuxNotification;
    /**
     * Sends notification on Windows using PowerShell toast (NON-BLOCKING)
     *
     * CRITICAL: Fire-and-forget pattern to prevent blocking Claude Code!
     * Notifications are informational only and should NEVER block execution.
     */
    private sendWindowsNotification;
    /**
     * Escapes string for AppleScript
     * Security: Handles backslashes first, then quotes, then newlines
     */
    private escapeForAppleScript;
    /**
     * Escapes string for shell (notify-send on Linux)
     * Security: Comprehensive escaping for shell metacharacters
     */
    private escapeForShell;
    /**
     * Escapes string for PowerShell
     * Security: Comprehensive escaping for PowerShell special chars
     */
    private escapeForPowerShell;
    /**
     * Sends a standardized notification using the notification-constants module.
     *
     * PREFERRED METHOD - ensures consistent, explicit notifications that follow
     * the WHO/WHAT/ACTION pattern documented in CLAUDE.md Rule 11.
     *
     * @param type - Notification type (cleanup, job_complete, error, etc.)
     * @param context - Context for message interpolation (count, items, reason, etc.)
     *
     * @example
     * // Send cleanup completion notification
     * await manager.sendStandardNotification('cleanup', { count: 5 });
     * // Result: "SpecWeave: Cleanup Done" - "Cleaned up 5 zombie processes. No action needed."
     *
     * @example
     * // Send job completion notification
     * await manager.sendStandardNotification('job_complete', { jobType: 'Import', items: 12 });
     * // Result: "SpecWeave: Job Complete" - "Import job finished. Processed 12 items."
     */
    sendStandardNotification(type: NotificationType, context?: NotificationContext): Promise<void>;
}
//# sourceMappingURL=notification-manager.d.ts.map