/**
 * `opensquid chat watch` — the inbox stream-source for the harness `Monitor`
 * tool (Track T-TR, TR.1). Resolves the active project's inbox JSONL and
 * streams NEW inbound messages to stdout, one formatted line per message.
 *
 * This is a NEW top-level `chat` verb group, distinct from `opensquid setup
 * chat` (the chat-agent wizard). The agent wraps it:
 *   Monitor({ command: "node dist/cli.js chat watch", persistent: true })
 * so each appended message → one in-chat event (no cron — see
 * docs/tasks/T-telegram-realtime.md L3 on why auto-start is an agent
 * convention, not a CLI side-effect).
 *
 * Umbrella resolution (T-CHAT-AS-TERMINAL CAT.1c): chat is keyed by UMBRELLA,
 * not per-cwd project_uuid. The cwd is resolved to its umbrella via
 * `loadChannelsConfig()` + `resolveUmbrellaForCwd` (longest-prefix over
 * `members`). `channels.json` is synthesized at the CAT.1d cutover, so an
 * absent config / unresolved umbrella exits with a clear message (graceful,
 * never throws). The `--umbrella` flag overrides resolution for tests + ops.
 *
 * Imports from: commander, ../../channels/routing.js, ../paths.js, ./watch.js.
 * Imported by: src/cli.ts (registers the `chat` parent verb).
 */
import type { Command } from 'commander';
import { type WatchInboxOpts } from './watch.js';
/** Injection seam — tests stub `watch` so the action returns instead of
 *  blocking on the real (forever-running) watcher. Mirrors AgentBridgeCliDeps.
 *  LL.3: `startInbound` is also injectable so lifecycle tests don't spin up
 *  a real chokidar tail. */
export interface ChatWatchDeps {
    watch?: (opts: WatchInboxOpts) => Promise<void>;
    startInbound?: () => Promise<() => Promise<void>>;
    /** Injection seam — tests stub the migration so the verb wiring can be
     *  smoke-tested without touching the legacy keyspace. */
    migrate?: (opts: {
        force?: boolean;
    }) => Promise<{
        config: {
            umbrellas: {
                id: string;
                members: string[];
            }[];
        };
        configWritten: boolean;
        configPath: string;
        copied: Record<string, number>;
    }>;
}
export declare function registerChatWatch(program: Command, deps?: ChatWatchDeps): Command;
//# sourceMappingURL=watch_cli.d.ts.map