/**
 * Single-source slash-command registry for the ACP server.
 *
 * `buildAvailableCommands` (the list advertised via `available_commands_update` and summarized by
 * `/help`) and `dispatchSlashCommand` (execution) share one source of truth — `BUILTIN_COMMANDS`.
 * Each command's `dispatch` calls the same underlying data service the equivalent RPC handler uses
 * (model-registry / tool-catalog / skills-query / project-store / acp-detector / memory store) and
 * formats the result as a text reply. No half-wiring: a command is only listed if it can run.
 *
 * Command-set decision (per plan): 9 direct commands + `/init` (degraded to a prompt, no automatic
 * function). `/compact` is intentionally NOT registered — context compaction is triggered
 * automatically by reactive-compact, so exposing it as an explicit command would be misleading.
 * `userInvocable` skill commands are enumerated dynamically; this codebase produces no
 * `SkillCommandSpec`, so the enumeration is empty (a foreseen degradation, not a stub).
 */
import type { AcpSessionHost } from "./acp-session-host.js";
export interface AcpCommandReply {
    handled: boolean;
    reply?: string;
}
export interface AcpCommandDef {
    /** Command token including the leading "/". */
    name: string;
    description: string;
    dispatch(host: AcpSessionHost, args: string): Promise<AcpCommandReply>;
}
export declare const BUILTIN_COMMANDS: AcpCommandDef[];
export declare function buildAvailableCommands(host: AcpSessionHost): Array<{
    name: string;
    description?: string;
}>;
export declare function dispatchSlashCommand(host: AcpSessionHost, text: string, args: string): Promise<AcpCommandReply>;
