import type { CliAdapter } from '../adapters/cli/types.js'; export type DiscoveredSource = 'project-command' | 'user-command' | 'project-skill' | 'user-skill' | 'plugin-command' | 'plugin-skill'; export interface DiscoveredCommand { /** Invocation form, e.g. '/deploy' or '/myplugin:foo'. */ name: string; /** First-line description pulled from frontmatter, when present. */ description?: string; source: DiscoveredSource; /** Human-friendly origin (relative-ish path or plugin id) for display. */ origin: string; } export type CommandDiscoveryAdapter = Pick; /** * Discover all filesystem-visible slash commands for a session's working dir. * Personal (`~/.claude`) + project (`/.claude`) + plugins, deduped * by (name, source) and sorted by name. Safe to call on any CLI: non-Claude * layouts simply yield nothing. */ export declare function discoverSlashCommands(workingDir: string): DiscoveredCommand[]; export declare function supportsFilesystemCommandDiscovery(adapter: CommandDiscoveryAdapter | undefined): boolean; /** * Discover filesystem-visible commands for the concrete CLI adapter. * Claude-family adapters scan their data root plus project `.claude`; all * other adapters scan only the roots they explicitly advertise. */ export declare function discoverSlashCommandsForAdapter(workingDir: string, adapter: CommandDiscoveryAdapter): DiscoveredCommand[]; /** * Cheaply surface MCP *server* names from `/.mcp.json` (the standard * project-level MCP config). The actual `/mcp____` commands need * a live handshake to enumerate and are out of scope here — this is just a hint. */ export declare function listMcpServerNames(workingDir: string): string[]; //# sourceMappingURL=command-discovery.d.ts.map