import type { IFileReader, IFileWriter } from "../../core/ports/filesystem.port.js"; import type { ILogger } from "../../core/ports/logger.port.js"; export type GitHookType = "pre-push" | "pre-commit"; export type InstallGitHookArgs = { readonly cwd: string; readonly type: GitHookType; readonly force: boolean; }; export type InstallGitHookDeps = { readonly reader: IFileReader; readonly writer: IFileWriter; readonly logger: ILogger; readonly chmod: (absPath: string, mode: number) => Promise; }; export type InstallGitHookResult = { readonly written: boolean; readonly targetPath: string; readonly installed: boolean; }; export declare class InstallGitHookUseCase { private readonly deps; constructor(deps: InstallGitHookDeps); execute(args: InstallGitHookArgs): Promise; }