export declare const NOTIFICATION_WIDGET_KEYS: readonly ["month_forecast", "today_live_cost", "risk_high_count", "stale_connection_count", "aws_month_forecast", "openai_today_cost", "openai_today_tokens", "codex_total_tokens", "claude_five_hour_percent", "claude_weekly_percent", "codex_five_hour_percent", "codex_weekly_percent", "codex_reset_credit_count", "codex_reset_credit_expiry", "supabase_usage_health", "cloudflare_month_to_date"]; export declare const COST_NOTIFICATION_WIDGET_KEYS: readonly ["month_forecast", "today_live_cost", "aws_month_forecast", "openai_today_cost", "cloudflare_month_to_date"]; export declare const USAGE_NOTIFICATION_WIDGET_KEYS: readonly ["openai_today_tokens", "codex_total_tokens", "claude_five_hour_percent", "claude_weekly_percent", "codex_five_hour_percent", "codex_weekly_percent", "codex_reset_credit_count", "codex_reset_credit_expiry"]; export declare const LOCAL_CLI_DASHBOARD_METRIC_KEYS: readonly ["context_percent", "last_request_tokens", "total_tokens", "five_hour_limit_percent", "weekly_limit_percent", "five_hour_remaining_tokens", "weekly_remaining_tokens", "usage_reset_credits", "usage_reset_credit_estimate", "context_tokens", "input_tokens", "output_tokens", "cache_tokens", "reasoning_tokens", "sessions", "turns", "tool_calls", "log_files"]; export declare const DASHBOARD_VIEW_KEYS: readonly ["overview", "today", "forecast", "risks"]; export declare const DASHBOARD_WIDGET_SIZES: readonly ["compact", "normal", "wide", "full"]; export declare const HUD_DISPLAY_MODES: readonly ["rows", "cells", "singleLine"]; export declare const HUD_LABEL_MODES: readonly ["text", "icon"]; export declare const HUD_BACKGROUND_NONE = "transparent"; export declare const NOTIFICATION_THRESHOLD_MODES: readonly ["aggregate", "individual", "all"]; export declare const DASHBOARD_WIDGET_KEYS_BY_VIEW: { readonly overview: readonly ["overview_meta", "overview_metrics", "overview_trend", "overview_grouping", "overview_services", "overview_insights"]; readonly today: readonly ["today_main", "today_rail"]; readonly forecast: readonly ["forecast_metrics", "forecast_table", "forecast_breakdown"]; readonly risks: readonly ["risks_summary", "risks_table"]; }; export type NotificationWidgetKey = (typeof NOTIFICATION_WIDGET_KEYS)[number]; export type LocalCliDashboardMetricKey = (typeof LOCAL_CLI_DASHBOARD_METRIC_KEYS)[number]; export type DashboardViewKey = (typeof DASHBOARD_VIEW_KEYS)[number]; export type DashboardWidgetSize = (typeof DASHBOARD_WIDGET_SIZES)[number]; export type DashboardWidgetKey = (typeof DASHBOARD_WIDGET_KEYS_BY_VIEW)[DashboardViewKey][number]; export type HudDisplayMode = (typeof HUD_DISPLAY_MODES)[number]; export type HudLabelMode = (typeof HUD_LABEL_MODES)[number]; export type NotificationThresholdMode = (typeof NOTIFICATION_THRESHOLD_MODES)[number]; export type ThresholdOperator = "gte" | "lte" | "eq"; export type DigestInterval = "six-hours" | "daily" | "weekly"; export interface NotificationThresholdRule { widgetKey: NotificationWidgetKey; operator: ThresholdOperator; value: number; cooldownMinutes: number; } export interface NotificationAggregateThresholdRule { operator: ThresholdOperator; value: number; cooldownMinutes: number; } export interface NotificationThresholdCategoryPreferences { mode: NotificationThresholdMode; aggregateRule: NotificationAggregateThresholdRule; } export interface NotificationThresholdSettings { cost: NotificationThresholdCategoryPreferences; usage: NotificationThresholdCategoryPreferences; } export interface NotificationPreferences { enabled: boolean; digestEnabled: boolean; digestInterval: DigestInterval; quietHours: { start: string; end: string; }; selectedWidgets: readonly NotificationWidgetKey[]; thresholdRules: readonly NotificationThresholdRule[]; thresholdSettings: NotificationThresholdSettings; desktopEnabled: boolean; dashboard: DashboardDisplayPreferences; hud: HudPreferences; } export interface DashboardBudgetPreferences { monthlyBudgetMinor: number | null; currency: string; warningPercent: number; criticalPercent: number; } export interface DashboardDisplayPreferences { localCliMetricKeys: readonly LocalCliDashboardMetricKey[]; budget: DashboardBudgetPreferences; widgetLayouts: DashboardWidgetLayoutPreferences; } export type DashboardWidgetLayoutPreferences = { readonly [ViewKey in DashboardViewKey]: readonly DashboardWidgetLayoutItem[]; }; export interface DashboardWidgetLayoutItem { widgetKey: DashboardWidgetKey; visible: boolean; size: DashboardWidgetSize; } export interface HudPreferences { alwaysOnTop: boolean; backgroundColor: string; displayMode: HudDisplayMode; fontColor: string; fontScale: number; labelMode: HudLabelMode; opacity: number; padding: number; rowHeight: number; showRemainingPercent: boolean; showUsagePercent: boolean; selectedWidgets: readonly NotificationWidgetKey[]; } export interface NotificationPreferenceFileOptions { cwd?: string; env?: Record; path?: string; } export declare const DEFAULT_SELECTED_NOTIFICATION_WIDGET_KEYS: readonly NotificationWidgetKey[]; export declare const DEFAULT_LOCAL_CLI_DASHBOARD_METRIC_KEYS: readonly LocalCliDashboardMetricKey[]; export declare const DEFAULT_DASHBOARD_WIDGET_LAYOUTS: DashboardWidgetLayoutPreferences; export declare const DEFAULT_NOTIFICATION_THRESHOLD_RULES: readonly NotificationThresholdRule[]; export declare const DEFAULT_NOTIFICATION_THRESHOLD_SETTINGS: NotificationThresholdSettings; export declare const DEFAULT_NOTIFICATION_PREFERENCES: NotificationPreferences; export declare function parseNotificationPreferences(value: unknown): NotificationPreferences; export declare function cloneNotificationPreferences(preferences: NotificationPreferences): NotificationPreferences; //# sourceMappingURL=notification-preferences-model.d.ts.map