/**
 * OpenCode workflow source validation + headless env helper.
 *
 * Checks that OpenCode workflow source files use the runtime-managed
 * `s.client` and `s.session` instead of manual SDK client creation, and
 * exports the `OPENCODE_CLIENT` override used to keep the interactive
 * `question` tool out of headless stages.
 */
/**
 * Client identifier passed to SDK-spawned OpenCode subprocesses in headless
 * stages.
 *
 * OpenCode only registers its interactive `question` tool when
 * `OPENCODE_CLIENT` is one of `"app" | "cli" | "desktop"` (see
 * `packages/opencode/src/tool/registry.ts` upstream — the `questionEnabled`
 * gate). In unattended runs nobody is attached to answer, so we identify
 * ourselves as `"sdk"` to keep the tool off the registry entirely. This
 * mirrors how the upstream ACP integration excludes the tool by default
 * (`packages/opencode/src/cli/cmd/acp.ts` sets `OPENCODE_CLIENT=acp`).
 */
export declare const HEADLESS_OPENCODE_CLIENT_ID = "sdk";
export declare function withHeadlessOpencodeEnv<T>(fn: () => Promise<T>): Promise<T>;
/**
 * Validate an OpenCode workflow source file for common mistakes.
 */
export declare const validateOpenCodeWorkflow: (source: string) => import("../types.ts").ValidationWarning[];
//# sourceMappingURL=opencode.d.ts.map