import type { RuntimeEventBus } from '../runtime/events/index.js'; import { SlackIntegration } from './slack.js'; import { DiscordIntegration } from './discord.js'; import type { DeliveryQueueConfig, IntegrationQueueStatus } from './delivery.js'; import { ServiceRegistry } from '../config/service-registry.js'; import type { FeatureFlagManager } from '../runtime/feature-flags/index.js'; /** * Notifier, unified notification dispatcher. * * Reads configuration from environment variables: * SLACK_WEBHOOK_URL, SLACK_BOT_TOKEN * DISCORD_WEBHOOK_URL, DISCORD_BOT_TOKEN * * Attach to the RuntimeEventBus to automatically post notifications for key events. */ export declare class Notifier { private slack?; private discord?; private unsubscribers; private readonly _queue; constructor(options?: { slack?: SlackIntegration | undefined; discord?: DiscordIntegration | undefined; delivery?: Partial | undefined; featureFlags?: Pick | null | undefined; }); /** * Create a Notifier pre-wired from configured services and environment variables. */ static fromConfig(serviceRegistry: Pick, options?: { featureFlags?: Pick | null; }): Promise; /** * Send a notification to all configured channels. * * @param event - Human-readable event name (used as message text) * @param data - Arbitrary key/value payload for formatting */ notify(event: string, data: Record): Promise; /** * Get delivery queue status snapshots for all active channels. * Used by integration diagnostics to surface queue and DLQ state. */ getQueueStatus(): IntegrationQueueStatus[]; /** * Replay all dead-letter entries to their respective channels. * Re-attempts delivery for each DLQ entry; results are returned per-entry. */ replayDeadLetters(): Promise>; /** Dispose the delivery queue (cancel pending timers). Call on shutdown. */ dispose(): void; attachToRuntimeBus(bus: RuntimeEventBus): void; /** Remove all notification subscriptions. */ detach(): void; private formatText; } //# sourceMappingURL=notifier.d.ts.map