import type { AgentTool } from "@earendil-works/pi-agent-core";
import { type Static, Type } from "typebox";
import type { ToolDefinition } from "../extensions/types.ts";
import { type HashlineSnapshotStore } from "./hashline.ts";
declare const editSchema: Type.TObject<{
    input: Type.TString;
}>;
export type EditToolInput = Static<typeof editSchema>;
export interface EditToolDetails {
    diff: string;
    patch: string;
    firstChangedLine?: number;
}
export interface EditOperations {
    readFile: (absolutePath: string) => Promise<Buffer>;
    writeFile: (absolutePath: string, content: string) => Promise<void>;
    access: (absolutePath: string) => Promise<void>;
}
export interface EditToolOptions {
    operations?: EditOperations;
    hashlineStore?: HashlineSnapshotStore;
}
export declare function createEditToolDefinition(cwd: string, options?: EditToolOptions): ToolDefinition<typeof editSchema, EditToolDetails | undefined>;
export declare function createEditTool(cwd: string, options?: EditToolOptions): AgentTool<typeof editSchema>;
export {};
//# sourceMappingURL=edit.d.ts.map