import type pino from "pino";
import type { StoredAgentRecord } from "../agent/agent-storage.js";
import type { ManagedAgent } from "../agent/agent-manager.js";
export declare const CHAT_MENTION_FANOUT_LIMIT = 25;
export interface ChatMentionNotificationInput {
    room: string;
    authorAgentId: string;
    body: string;
    mentionAgentIds: string[];
}
export interface PreparedChatMentionFanout {
    targetMentionAgentIds: string[];
    roomPosterAgentIds: string[];
}
export type PrepareChatMentionFanoutResult = {
    ok: true;
    prepared: PreparedChatMentionFanout;
} | {
    ok: false;
    error: string;
};
export interface PrepareChatMentionFanoutInput {
    authorAgentId: string;
    mentionAgentIds: string[];
    storedAgents: StoredAgentRecord[];
    liveAgents: ManagedAgent[];
    listRoomPosterAgentIds: () => Promise<string[]>;
    limit?: number;
}
export interface NotifyChatMentionsInput extends ChatMentionNotificationInput {
    logger: pino.Logger;
    storedAgents: StoredAgentRecord[];
    liveAgents: ManagedAgent[];
    prepared: PreparedChatMentionFanout;
    resolveAgentIdentifier: (identifier: string) => Promise<{
        ok: true;
        agentId: string;
    } | {
        ok: false;
        error: string;
    }>;
    sendAgentMessage: (agentId: string, text: string) => Promise<void>;
}
export declare function prepareChatMentionFanout(input: PrepareChatMentionFanoutInput): Promise<PrepareChatMentionFanoutResult>;
export declare function notifyChatMentions(input: NotifyChatMentionsInput): Promise<void>;
export declare function buildChatMentionNotification(input: ChatMentionNotificationInput): string;
//# sourceMappingURL=chat-mentions.d.ts.map