/**
 * SendAgentMessageUseCase
 *
 * Application-layer entry point for publishing an {@link AgentMessage} to
 * the {@link IAgentMessageBus}. Enforces:
 *
 *  - The hub-and-spoke addressing rule (peer addressing rejected at the
 *    use-case boundary so the error is surfaced before any persistence).
 *  - The collaboration feature flag short-circuit (NFR-14): with the flag
 *    off, no message is written and consumers receive `enabled: false`.
 *
 * The use case generates the message id and timestamps so callers do not
 * need to know about the persistence shape. Payload may be passed as a
 * string (already-serialized) or a structured object (auto-stringified).
 */
import type { IAgentMessageBus } from '../../ports/output/agents/agent-message-bus.interface.js';
import type { ISettingsRepository } from '../../ports/output/repositories/settings.repository.interface.js';
import type { AgentMessage, AgentMessageKind } from '../../../domain/generated/output.js';
export interface SendAgentMessageInput {
    appId: string;
    featureId?: string;
    fromActor: string;
    fromAgentRunId?: string;
    toTarget: string;
    toKind: string;
    messageKind: AgentMessageKind;
    payload: unknown;
    correlationId?: string;
}
export interface SendAgentMessageResult {
    /** True when the collaboration feature flag is on and the publish was attempted. */
    enabled: boolean;
    /** The persisted message — populated only when `enabled` is true. */
    message?: AgentMessage;
}
export declare class SendAgentMessageUseCase {
    private readonly bus;
    private readonly settings;
    constructor(bus: IAgentMessageBus, settings: ISettingsRepository);
    execute(input: SendAgentMessageInput): Promise<SendAgentMessageResult>;
    private isCollaborationEnabled;
}
//# sourceMappingURL=send-agent-message.use-case.d.ts.map