import { explorerContentTable } from "~/db/schema"; import type { CanvasContent } from "./canvas"; export type FileType = typeof explorerContentTable.$inferSelect.type; export type Overview = Omit; export type Content = { content: string }; export type ExploreContent= Overview & Partial; export type TreeItem = ExploreContent & { children?: TreeItem[] }; export interface ContentComposable { content: Ref tree: ComputedRef /** * Fetch the overview of every content from the server. */ fetch: (force: boolean) => Promise /** * Get the given content from the server. */ get: (path: string) => Promise } export type MarkdownContent = string; export type FileContent = any; export type FolderContent = null; export interface ContentTypeMap { markdown: MarkdownContent; canvas: CanvasContent; file: FileContent; folder: FolderContent; }