import { EventEmitter } from "node:events";
/**
 * Process-wide mood bus + a few lightweight agent-state pulses.
 *
 * The set_mood tool emits `mood` here and the web server (or any other
 * surface) subscribes to push it to the client. The agent loop also emits
 * `chat_start` / `chat_end` so external surfaces (web GUI, island widget)
 * can show a "thinking" indicator without subscribing to the per-turn
 * agent event stream.
 *
 * Decoupled from the agent loop so non-agent code (scheduled tasks,
 * heartbeats, channels) can also nudge the avatar.
 */
declare class MoodBus extends EventEmitter {
    private currentSlug;
    set(slug: string): void;
    current(): string;
    /** Agent loop entered a turn — surfaces switch to "thinking" indicator. */
    chatStart(): void;
    /** Agent loop exited — surfaces clear the "thinking" indicator. */
    chatEnd(): void;
}
export declare const moodBus: MoodBus;
export {};
//# sourceMappingURL=mood-bus.d.ts.map