import type { ToolCallRequest, ToolCallResult, ToolDefinition, ToolPort } from "@oscharko-dev/keiko-contracts";
import { type WorkspaceFs, type WorkspaceInfo } from "@oscharko-dev/keiko-workspace";
import { type ExecutableResolver, type SpawnFn } from "./exec.js";
import { type WorkspaceWriter } from "./writer.js";
import { type ToolHostConfigInput } from "./types.js";
export declare class WorkspaceToolHost implements ToolPort {
    private readonly workspace;
    private readonly fs;
    private readonly writer;
    private readonly spawn;
    private readonly resolveExecutable;
    private readonly config;
    private readonly processEnv;
    private readonly now;
    constructor(deps: {
        readonly workspace: WorkspaceInfo;
        readonly fs?: WorkspaceFs | undefined;
        readonly writer?: WorkspaceWriter | undefined;
        readonly spawn?: SpawnFn | undefined;
        readonly resolveExecutable?: ExecutableResolver | undefined;
        readonly config?: ToolHostConfigInput | undefined;
        readonly processEnv?: NodeJS.ProcessEnv | undefined;
        readonly now?: (() => number) | undefined;
    });
    listTools(): readonly ToolDefinition[];
    execute(request: ToolCallRequest): Promise<ToolCallResult>;
    private dispatch;
    private readFile;
    private listFiles;
    private inspectScripts;
    private runCommandTool;
    private proposePatch;
    private applyPatchTool;
}
//# sourceMappingURL=registry.d.ts.map