import type { ToolDefinition } from "@opencode-ai/plugin"; export interface Anchor { line: number; hash: string; } export interface ReplaceLineEdit { op: "replace_line"; pos: Anchor; lines: string[]; } export interface ReplaceRangeEdit { op: "replace_range"; pos: Anchor; end: Anchor; lines: string[]; } export interface AppendAtEdit { op: "append_at"; pos: Anchor; lines: string[]; } export interface PrependAtEdit { op: "prepend_at"; pos: Anchor; lines: string[]; } export interface AppendFileEdit { op: "append_file"; lines: string[]; } export interface PrependFileEdit { op: "prepend_file"; lines: string[]; } export type HashlineEdit = ReplaceLineEdit | ReplaceRangeEdit | AppendAtEdit | PrependAtEdit | AppendFileEdit | PrependFileEdit; export interface RawHashlineEdit { op: string; pos?: string; end?: string; lines?: string | string[] | null; } export type HashlineEditToolArgs = { filePath: string; edits: RawHashlineEdit[]; }; export declare const hashlineEditArgsShape: ToolDefinition["args"]; export interface HashlineApplyReport { content: string; noopEdits: number; deduplicatedEdits: number; firstChangedLine: number | undefined; warnings: string[]; }