import { type Repo } from './repo.ts';
import type { TreeEntry } from './tree.ts';
export declare const HUNK_CONTEXT = 3;
export declare const OID_HEX = 40;
export declare const DEV_NULL = "/dev/null";
/** An entry's bytes: a blob's contents, a submodule's commit line, empty for a missing side. */
export declare function blobData(repo: Repo, entry: TreeEntry | null): Promise<Uint8Array>;
/** A blob's lines, each keeping its newline, as xdiff splits them. */
export declare function byteLines(data: Uint8Array): string[];
/** An entry's object id cut to `width`, zeros for a missing side. */
export declare function shortOid(entry: TreeEntry | null, width: number): string;
/**
 * One path's patch, headers and hunks, as git diff prints it. A change between
 * a file and a symlink is split into a deletion and a creation, the two patches
 * git diff prints for a type change. A `---` or `+++` label holding a space
 * ends in a tab, so a patch tool can tell where the name stops.
 */
export declare function filePatch(repo: Repo, path: string, oldPath: string, before: TreeEntry | null, after: TreeEntry | null, score: number | null, width: number, fully?: boolean, count?: number, functionContext?: boolean, forceText?: boolean): Promise<string>;
//# sourceMappingURL=patch.d.ts.map