import type { RuntimeEventBus } from '../runtime/events/index.js';
import { SlackIntegration } from '@pellux/goodvibes-sdk/platform/integrations/slack';
import { DiscordIntegration } from '@pellux/goodvibes-sdk/platform/integrations/discord';
import type { DeliveryQueueConfig, IntegrationQueueStatus } from '@pellux/goodvibes-sdk/platform/integrations/delivery';
import { ServiceRegistry } from '../config/service-registry.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;
        discord?: DiscordIntegration;
        delivery?: Partial<DeliveryQueueConfig>;
    });
    /**
     * Create a Notifier pre-wired from configured services and environment variables.
     */
    static fromConfig(serviceRegistry: Pick<ServiceRegistry, 'resolveSecret'>): Promise<Notifier>;
    /**
     * 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<string, unknown>): Promise<void>;
    /**
     * 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<Array<{
        id: string;
        outcome: import('@pellux/goodvibes-sdk/platform/integrations/delivery').DeliveryOutcome;
    }>>;
    /** 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