1// SPDX-FileCopyrightText: 2025 Romain Maneschi <romain@gitroot.dev>
2//
3// SPDX-License-Identifier: MIT
4
5import { Iterator } from "./iterator";
6import { InitKind, Report } from "./model";
7import { Commit } from "./model/commit";
8import { File } from "./model/file";
9
10export interface Plugin {
11 init(repoName: string, initKind: InitKind, conf: string): void;
12 startCommit(commit: Commit): void;
13 addFile(file: File): void;
14 modFile(file: File): void;
15 delFile(file: File): void;
16 endCommit(commit: Commit): void;
17 finish(): void;
18}
19
20export interface PluginReporter {
21 report(report: Iterator<Report>): void;
22}