import type { AuthService, AuthUser } from './auth-service.js';
/**
 * Matches `@handle` in body text. Handle is lowercase kebab-case, must follow
 * a word boundary (not part of an email or other identifier). Mirrors the
 * pattern used by the pre-Phase-0 messaging surface so handles already in
 * use stay valid.
 */
export declare const USER_MENTION_RE: RegExp;
/** Separate @agent detection so it doesn't get rolled into user notifications. */
export declare const AGENT_MENTION_RE: RegExp;
/** Bounded mention fan-out per comment. Above this, extra @-handles in the
 *  body are ignored — prevents one comment from spamming every workspace
 *  member with notifications and broadcasts. */
export declare const MAX_MENTIONS_PER_COMMENT = 20;
/**
 * Extract user mentions from a body. Returns AuthUser records, excluding the
 * sender so authors don't notify themselves. Order matches first-occurrence
 * in the body; duplicates removed. Capped at MAX_MENTIONS_PER_COMMENT so a
 * single comment can't fan out unbounded notifications.
 */
export declare function detectUserMentions(body: string, senderUserId: number, authService: AuthService): AuthUser[];
/** True iff the body contains an `@agent` mention. */
export declare function hasAgentMention(body: string): boolean;
