import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; interface RegisterOptions { /** Absolute path to the installed forge plugin root, or null when outside a Forge project. */ forgeRoot: string | null; /** Directory containing vendored prompt files (resolves to /prompts at runtime). */ promptsRoot: string; } declare function resetTomoshibiState(): void; export declare function registerForgeCommands(pi: ExtensionAPI, options: RegisterOptions): void; /** Parse YAML frontmatter from a markdown file. Returns name and description or null. */ declare function parseFrontmatter(content: string): { name: string; description: string; } | null; export interface RegisterAllOptions { /** Absolute path to dist/forge-payload/ (containing the unified commands/ tree). */ bundlePayloadRoot: string; /** Current working directory (for health check). */ cwd?: string; /** Absolute path to dist/forge-payload/ for health check bundle root. */ bundleRoot?: string; } /** * Register all forge commands from the bundled unified commands/ directory. * Commands already registered (real handlers) are skipped. * Returns the number of commands registered. * * FORGE-S32-T06: repointed from .base-pack/commands/ to the unified commands/ * tree. The tree now also carries the 13 plugin-utility commands; all of their * names are in EXPLICITLY_REGISTERED_NAMES (forge:reset added for this repoint), * so the auto-stub surface is unchanged — no new stubs are registered. */ export declare function registerAllForgeCommands(pi: ExtensionAPI, options: RegisterAllOptions): number; export declare const __test__: { resetTomoshibiState: typeof resetTomoshibiState; getTomoshibiPending: () => boolean; parseFrontmatter: typeof parseFrontmatter; REAL_HANDLERS: Set; EXPLICITLY_REGISTERED_NAMES: Set; }; export {};