import type { BrokerKind, BrokerConfig } from '../types/index.js';
/**
 * Detect which message broker(s) the project uses by scanning the provided
 * dependency identifiers (package names, framework names, stack tags).
 *
 * Returns all matched brokers in detection order. If nothing matched, returns
 * a single-element array with `'unknown'`.
 */
export declare function detectBrokers(dependencies: string[] | undefined | null): BrokerKind[];
/**
 * Return the full BrokerConfig for a given broker ID, or null if not found.
 */
export declare function getBrokerConfig(brokerId: BrokerKind): BrokerConfig | null;
/**
 * Return true when the given broker guarantees at-least-once delivery
 * (which means consumers MUST be idempotent).
 */
export declare function requiresIdempotence(brokerId: BrokerKind): boolean;
/**
 * Return true when the given broker supports dead-letter queues natively
 * or via a common pattern (retry topic, DLX, etc.).
 */
export declare function supportsDLQ(brokerId: BrokerKind): boolean;
/**
 * Given a list of project stack/dependency identifiers, determine if the project
 * is event-driven and return the primary broker (first detected).
 */
export declare function detectPrimaryBroker(stack: string[] | undefined | null): BrokerKind;
/**
 * Reset the cached config (used in tests to ensure fresh reads).
 */
export declare function resetBrokerConfigCache(): void;
//# sourceMappingURL=event-detector.d.ts.map