import { z } from "zod";
import type { AgentTool } from "@kenkaiiii/gg-agent";
import { type ToolOperations } from "./operations.js";
import { type ReadTracker } from "./read-tracker.js";
type MutationCallback = (filePath: string) => void | Promise<void>;
/** Post-write diagnostics provider (LSP). Non-empty results are appended to successful tool output. */
type DiagnosticsProvider = (filePath: string, content: string) => Promise<string>;
declare const EditParams: z.ZodObject<{
    file_path: z.ZodString;
    edits: z.ZodPreprocess<z.ZodArray<z.ZodObject<{
        old_text: z.ZodString;
        new_text: z.ZodString;
        replace_all: z.ZodOptional<z.ZodBoolean>;
        anchor: z.ZodOptional<z.ZodObject<{
            start_line: z.ZodNumber;
            start_hash: z.ZodString;
            end_line: z.ZodNumber;
            end_hash: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>>>;
    atomic: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export declare function createEditTool(cwd: string, readFiles?: ReadTracker, ops?: ToolOperations, planModeRefOrOnFileMutated?: {
    current: boolean;
} | MutationCallback, onFileMutated?: MutationCallback, onPreFileMutation?: MutationCallback, getDiagnostics?: DiagnosticsProvider): AgentTool<typeof EditParams>;
export {};
//# sourceMappingURL=edit.d.ts.map