import type { AgentTool } from "@pie-lab/agent-core";
import { type SnapshotStore } from "@pie-lab/hashline";
import { type Static, Type } from "typebox";
import type { ToolDefinition } from "../extensions/types.ts";
import type { ConflictHistory } from "./conflict-history.ts";
declare const writeSchema: Type.TObject<{
    path: Type.TString;
    content: Type.TString;
}>;
export type WriteToolInput = Static<typeof writeSchema>;
/**
 * Pluggable operations for the write tool.
 * Override these to delegate file writing to remote systems (for example SSH).
 */
export interface WriteOperations {
    /** Write content to a file */
    writeFile: (absolutePath: string, content: string) => Promise<void>;
    /** Create directory recursively */
    mkdir: (dir: string) => Promise<void>;
}
export interface WriteToolOptions {
    /** Custom operations for file writing. Default: local filesystem */
    operations?: WriteOperations;
    /** Shared snapshot store for hashline edits. */
    snapshotStore?: SnapshotStore;
    /** Shared merge-conflict registry for conflict:// writes. */
    conflictHistory?: ConflictHistory;
}
export declare function createWriteToolDefinition(cwd: string, options?: WriteToolOptions): ToolDefinition<typeof writeSchema, undefined>;
export declare function createWriteTool(cwd: string, options?: WriteToolOptions): AgentTool<typeof writeSchema>;
export {};
//# sourceMappingURL=write.d.ts.map