import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import type { ForgeToolDefs } from "../forge-tools.js"; /** Get the bundled forge-payload root (dist/forge-payload/) */ export declare function getBundledPayloadRoot(): string; /** Get the bundled tools directory (dist/forge-payload/tools/) */ export declare function getBundledToolsRoot(): string; /** * Resolve the absolute path to dist/forge-payload/tools and validate it * contains store-cli.cjs. Throws if the directory is missing or incomplete. * Exported for test access and for Phase-4 pi-aware forgeRoot stamp. */ export declare function resolveBundleToolsRoot(): string; /** * Detect pi runtime. forge-init.ts is only ever called from the forgecli pi * extension (registerForgeInit is invoked during extension load by pi). There * is no Claude Code execution path. Therefore this always returns true. * * We keep the guard explicit rather than hardcoding `true` so that if a future * Claude Code path is added it is obvious where to insert the condition. * * Heuristic: PI_CODING_AGENT_DIR env set → definitely pi. Otherwise assume pi * (our only caller). Only false if explicitly opted-out via env flag in a * hypothetical future Claude Code integration. * Exported for test access. */ export declare function isPiRuntime(): boolean; export declare function registerForgeInit(pi: ExtensionAPI, forgeToolDefs?: ForgeToolDefs): void;