import { Buf } from "./buf"; import { Repository } from "./repository"; import { WorktreeAddOptions } from "./worktree-add-options"; import { WorktreePruneOptions } from "./worktree-prune-options"; export namespace Worktree { const enum PRUNE { VALID = 1, LOCKED = 2, WORKING_TREE = 4, } } export class Worktree { /** * @param repo - Repository to create working tree for * @param name - Name of the working tree * @param path - Path to create working tree at * @param opts - Options to modify default behavior. May be NULL */ static add(repo: Repository, name: string, path: string, opts?: WorktreeAddOptions): Promise; /** * @param repo - the repo to use when listing working trees */ static list(repo: Repository): Promise; /** * @param repo - The repository containing worktrees * @param name - Name of the working tree to look up */ static lookup(repo: Repository, name: string): Promise; /** * @param repo - Repository to look up worktree for */ static openFromRepository(repo: Repository): Promise; /** * @param reason - Buffer to store reason in. If NULL no reason is stored. * @returns - 0 when the working tree not locked, a value greater than zero if it is locked, less than zero if there was an error */ isLocked(reason?: Buf): number; isPrunable(opts: WorktreePruneOptions): number; /** * @param reason - Reason why the working tree is being locked * @returns - 0 on success, non-zero otherwise */ lock(reason: string): number; name(): string; path(): string; /** * @param opts - Specifies which checks to override. See isPrunable. May be NULL * @returns - 0 or an error code */ prune(opts?: WorktreePruneOptions): number; /** * @returns - 0 on success, 1 if worktree was not locked, error-code */ unlock(): number; /** * @returns - 0 when worktree is valid, error-code otherwise */ validate(): number; }