import { Task } from "@/model/task"; export interface IFileSystem { readFile(path: string): Promise; writeFile(path: string, content: string): Promise; deleteFile(path: string): Promise; readdir(path: string): Promise; mkdir(path: string): Promise; } export interface ITaskRepository { list(folderPath: string): Promise; getById(folderPath: string, id: string): Promise; create( folderPath: string, task: Omit, ): Promise; update(folderPath: string, task: Task): Promise; delete(folderPath: string, id: string): Promise; /** Absolute/joined path for the task file in `folderPath`. */ getFilePath(folderPath: string, task: Task): string; } export interface IConfigProvider { getProjectTaskPath(): string | undefined; getGlobalTaskPath(): string | undefined; }