/**
 * Notification Types
 *
 * Defines the types for the notification system.
 *
 * @module core/notifications/notification-types
 */
/**
 * Types of notifications
 */
export type NotificationType = 'import-complete' | 'discrepancy' | 'sync-failure' | 'drift' | 'job-complete' | 'cost-alert';
/**
 * Notification severity levels
 */
export type NotificationSeverity = 'info' | 'warning' | 'critical';
/**
 * Notification data structure
 */
export interface Notification {
    /**
     * Unique notification ID
     */
    id: string;
    /**
     * Type of notification
     */
    type: NotificationType;
    /**
     * Severity level
     */
    severity: NotificationSeverity;
    /**
     * Short title for display
     */
    title: string;
    /**
     * Detailed message
     */
    message: string;
    /**
     * Type-specific data
     */
    data?: Record<string, unknown>;
    /**
     * ISO timestamp when created
     */
    createdAt: string;
    /**
     * ISO timestamp when user saw the notification
     */
    readAt?: string;
    /**
     * ISO timestamp when user dismissed the notification
     */
    dismissedAt?: string;
}
/**
 * Input for creating a new notification
 */
export interface CreateNotificationInput {
    /**
     * Type of notification
     */
    type: NotificationType;
    /**
     * Severity level
     */
    severity: NotificationSeverity;
    /**
     * Short title for display
     */
    title: string;
    /**
     * Detailed message
     */
    message: string;
    /**
     * Type-specific data
     */
    data?: Record<string, unknown>;
}
/**
 * Query options for notifications
 */
export interface NotificationQueryOptions {
    /**
     * Filter by type
     */
    type?: NotificationType;
    /**
     * Filter by severity
     */
    severity?: NotificationSeverity;
    /**
     * Include dismissed notifications
     * @default false
     */
    includeDismissed?: boolean;
    /**
     * Include read notifications
     * @default true
     */
    includeRead?: boolean;
    /**
     * Maximum number of notifications to return
     */
    limit?: number;
    /**
     * Skip first N notifications
     */
    offset?: number;
    /**
     * Sort order
     * @default 'desc' (newest first)
     */
    sortOrder?: 'asc' | 'desc';
}
/**
 * Generate a unique notification ID
 *
 * @returns Unique ID string
 */
export declare function generateNotificationId(): string;
/**
 * Create a notification from input
 *
 * @param input - Notification input
 * @returns Full notification object
 */
export declare function createNotification(input: CreateNotificationInput): Notification;
/**
 * Check if notification should be shown (not dismissed)
 *
 * @param notification - Notification to check
 * @returns true if notification should be shown
 */
export declare function isPendingNotification(notification: Notification): boolean;
/**
 * Check if notification has been read
 *
 * @param notification - Notification to check
 * @returns true if notification has been read
 */
export declare function isReadNotification(notification: Notification): boolean;
/**
 * Get severity emoji for display
 *
 * @param severity - Severity level
 * @returns Emoji string
 */
export declare function getSeverityEmoji(severity: NotificationSeverity): string;
/**
 * Get notification type label for display
 *
 * @param type - Notification type
 * @returns Human-readable label
 */
export declare function getNotificationTypeLabel(type: NotificationType): string;
//# sourceMappingURL=notification-types.d.ts.map