/**
 * OpenClaw channel plugin entry point.
 *
 * Intentionally thin — no heavy imports (libsodium etc.) at module load time.
 * SecureChannel is dynamically imported inside gateway.startAccount (already async)
 * so libsodium's top-level await never runs during plugin registration.
 *
 * Loaded by OpenClaw via the `openclaw.extensions` field in package.json.
 */
import type { OpenClawPluginApi } from "./openclaw-types.js";
/** Whether OpenClaw managed HTTP routes are active (vs self-managed server). */
export declare let isUsingManagedRoutes: boolean;
/** Extract @mention names from plaintext. Returns lowercased names. */
declare function _parseMentions(text: string): string[];
/** Determine whether this agent should process a room message based on @mentions and sender type.
 *
 * Loop prevention is handled by the rate limiter (_roomCanReply: 4 replies/60s
 * with 2min cooldown), so we no longer gate on senderIsAgent. All messages
 * are processed unless they @mention a *different* agent specifically.
 */
declare function _shouldProcessRoomMessage(plaintext: string, agentName: string, accountId: string, _senderIsAgent?: boolean): boolean;
/** Strip the matching @mention prefix from plaintext so the agent sees clean text. */
declare function _stripMentions(text: string, agentName: string, accountId: string): string;
export { _parseMentions, _shouldProcessRoomMessage, _stripMentions };
declare const _default: {
    id: string;
    name: string;
    description: string;
    register(api: OpenClawPluginApi): void;
};
export default _default;
//# sourceMappingURL=openclaw-entry.d.ts.map