import type { RuntimeEventBus } from '../events/index.js'; import type { EmitterContext } from './index.js'; import type { CommunicationKind, CommunicationScope } from '../../../events/communication.js'; type BaseCommunication = { messageId: string; fromId: string; toId: string; scope: CommunicationScope; kind: CommunicationKind; }; export declare function emitCommunicationSent(bus: RuntimeEventBus, ctx: EmitterContext, data: BaseCommunication & { content: string; fromRole?: string | undefined; toRole?: string | undefined; cohort?: string | undefined; wrfcId?: string | undefined; parentAgentId?: string | undefined; }): void; export declare function emitCommunicationDelivered(bus: RuntimeEventBus, ctx: EmitterContext, data: BaseCommunication): void; /** * The honest "consumed at boundary" signal, emitted once, at the drain * site (orchestrator-runner.ts), the turn a queued message is actually * injected into the target agent's conversation. Never repurpose * `emitCommunicationDelivered` for this: it fires eagerly at send() time. */ export declare function emitCommunicationConsumed(bus: RuntimeEventBus, ctx: EmitterContext, data: { messageId: string; agentId: string; turn: number; }): void; export declare function emitCommunicationBlocked(bus: RuntimeEventBus, ctx: EmitterContext, data: BaseCommunication & { reason: string; fromRole?: string | undefined; toRole?: string | undefined; cohort?: string | undefined; wrfcId?: string | undefined; parentAgentId?: string | undefined; }): void; export {}; //# sourceMappingURL=communication.d.ts.map