import type { Result } from "./result.js"; import type { Folder, Project } from "./types.js"; export type ProjectNotFoundError = { type: "PROJECT_NOT_FOUND"; projectId: string; }; export type FolderNotFoundError = { type: "FOLDER_NOT_FOUND"; folderId: string; }; export type ProjectStoreError = ProjectNotFoundError | FolderNotFoundError; export type ProjectCreateInput = { name: string; description?: string; isGlobal?: boolean; }; export type ProjectUpdateInput = { name?: string; description?: string | null; isGlobal?: boolean; }; export type FolderCreateInput = { name: string; description?: string; }; export type FolderUpdateInput = { name?: string; description?: string | null; }; export interface ProjectStore { create(input: ProjectCreateInput): Promise>; get(id: string): Promise>; update( id: string, input: ProjectUpdateInput, ): Promise>; delete(id: string): Promise>; list(): Promise>; addFolder( projectId: string, input: FolderCreateInput, ): Promise>; updateFolder( projectId: string, folderId: string, input: FolderUpdateInput, ): Promise>; removeFolder( projectId: string, folderId: string, ): Promise>; listFolders( projectId: string, ): Promise>; }