import type { NotificationConfig, NotificationEventConfig, NotificationEventType } from "./types.ts"; /** * Default per-event notification configs, seeded into every parsed config so * events like the graph approval gate have a sensible enabled state and title * template without requiring explicit user config. A user config entry for the * same event key overrides the whole entry at the event-key level (see * `parseNotificationConfig` / `mergeNotificationConfigs`). */ export declare const DEFAULT_NOTIFICATION_EVENT_CONFIGS: Readonly>>; /** * Frozen default notification configuration. * All optional-adjacent fields have explicit defaults so consumers * never need null checks for the top-level shape. */ export declare const DEFAULT_NOTIFICATION_CONFIG: Readonly; /** * Parse a raw (YAML-parsed) value into a validated `NotificationConfig`. * * Coerces strings to numbers where safe (e.g. `"1500"` → `1500`). * Logs warnings for invalid or unrecognized fields and falls back to * `DEFAULT_NOTIFICATION_CONFIG` for malformed input. * * @param raw - The raw (typically JSON/YAML-parsed) config value. * @returns A fully populated `NotificationConfig`. */ export declare function parseNotificationConfig(raw: unknown): NotificationConfig; /** * Merge a role-level notification config on top of a global config. * * Semantics: * - Scalar fields (enabled, mainSessionOnly, idleDelayMs, questionToolNames, * quietHours, throttle): role value always wins (all fields are required * in `NotificationConfig`). * - `channels`: role's channels array **replaces** global's entirely. * - `events`: merged at the event-key level. Role's event config replaces * global's for the same key. Keys present only in global are preserved. * - If `role` is `undefined`, returns a deep clone of `global`. * * @param global - The global/base notification configuration. * @param role - Optional role-level overrides. * @returns A new merged `NotificationConfig` (input objects are not mutated). */ export declare function mergeNotificationConfigs(global: NotificationConfig, role?: NotificationConfig): NotificationConfig; /** * Resolve `{env:VAR_NAME}` patterns in all string values of a * `NotificationConfig`. Produces a new object; does not mutate the input. * * @param config - The config to resolve environment variables in. * @returns A new `NotificationConfig` with all env vars resolved. */ export declare function resolveEnvVarsInConfig(config: NotificationConfig): NotificationConfig; export { validateNotificationConfig } from "./config-validate.ts"; //# sourceMappingURL=config.d.ts.map