import { type BuildCodegraphEnvOptions, type CodegraphCommandResolution, type CodegraphNodeSupport, type CodegraphProvisionResult, type CodegraphWorkspacePreparation, type PrepareCodegraphWorkspaceOptions, type ResolveCodegraphCommandOptions } from "@oh-my-opencode/utils"; import type { CodegraphConfig } from "../../config"; import type { CodegraphCommandResult } from "./command-runner"; export interface CodegraphBootstrapContext { readonly directory: string; } export interface CodegraphBootstrapEventInput { readonly event: { readonly properties?: unknown; readonly type: string; }; } export interface CodegraphBootstrapDeps { readonly buildEnv: (options?: BuildCodegraphEnvOptions) => Record; readonly ensureGitignored: (projectRoot: string) => boolean; readonly ensureProvisioned: (options: { readonly installDir?: string; readonly lockDir: string; readonly version: "1.0.1"; }) => Promise; readonly log: (message: string, data?: Record) => void; readonly nodeSupport: () => CodegraphNodeSupport; readonly prepareWorkspace: (projectRoot: string, options?: PrepareCodegraphWorkspaceOptions) => CodegraphWorkspacePreparation; readonly resolveCommand: (options?: ResolveCodegraphCommandOptions) => CodegraphCommandResolution; readonly runCommand: (projectRoot: string, command: string, args: readonly string[], options: { readonly env: Record; readonly timeoutMs: number; }) => Promise; readonly schedule: (task: () => Promise) => void; } export declare function clearCodegraphBootstrapProjectsForTesting(): void; export declare function createCodegraphBootstrapHook(ctx: CodegraphBootstrapContext, config: Partial | undefined, depsOverride?: Partial): { event(input: CodegraphBootstrapEventInput): void; };