import { DIFF_MAX_LINES, DeletedSegment, DiffHunk, DiffOp, PREVIEW_CONTEXT, PREVIEW_MAX_DIFF_LINES, capPreviewHunks, computeLineOps, groupHunks } from "./diff/line-ops.js"; export { DIFF_MAX_LINES, PREVIEW_CONTEXT, PREVIEW_MAX_DIFF_LINES, capPreviewHunks, computeLineOps, groupHunks }; export type { DeletedSegment, DiffHunk, DiffLine, DiffOp } from "./diff/line-ops.js"; export type FileChangeKind = "create" | "edit" | "overwrite" | "append" | "delete"; export interface FileChangeStats { readonly oldLines: number; readonly newLines: number; readonly added: number; readonly removed: number; } export interface FileChange { readonly path: string; readonly basename: string; readonly kind: FileChangeKind; readonly stats: FileChangeStats; readonly previewHunks: readonly DiffHunk[]; readonly afterText?: string | undefined; readonly addedNewLines: readonly number[]; readonly deletedAt: readonly DeletedSegment[]; readonly snapshotPath?: string | undefined; readonly binary?: boolean | undefined; readonly truncated?: boolean | undefined; } export declare const DIFF_MAX_BYTES = 1000000; export declare const INLINE_AFTER_MAX_BYTES = 48000; export declare function splitLines(text: string): string[]; export declare function looksBinary(text: string): boolean; export interface BuildFileChangeOptions { readonly path: string; readonly before: string; readonly after: string; readonly kind: FileChangeKind; readonly context?: number | undefined; readonly previewMaxLines?: number | undefined; readonly snapshotPath?: string | undefined; } export declare function buildFileChange(opts: BuildFileChangeOptions): FileChange; export declare function inferChangeKind(before: string | undefined, after: string, toolHint?: "append" | "delete" | "edit" | "write"): FileChangeKind; export declare function formatUnifiedPreview(change: FileChange, options?: { maxLines?: number; }): string; export interface ModalDiffLine { readonly lineNo: number | undefined; readonly text: string; readonly op: DiffOp; readonly oldLineNo?: number | undefined; } export declare function buildModalLines(change: FileChange): ModalDiffLine[]; export declare function changeVerb(kind: FileChangeKind, status: "running" | "ok" | "failed"): string; export declare function fileToolTitle(toolName: string, status: "queued" | "running" | "ok" | "failed" | "blocked", pathOrDisplay: string, kind?: FileChangeKind | undefined): { title: string; pathLine: string | undefined; }; export declare function isFileMutationTool(name: string): boolean;