import type { CanvasContent as Canvas } from "./canvas"; import type { MapContent as Map } from "./map"; export type FileType = keyof ContentMap; export interface Overview { path: string; owner: number; title: string; timestamp: Date; navigable: boolean; private: boolean; order: number; visit: number; } export interface CanvasContent extends Overview { type: 'canvas'; content?: Canvas; } export interface MapContent extends Overview { type: 'map'; content?: string; } export interface MarkdownContent extends Overview { type: 'markdown'; content?: string; } export interface FileContent extends Overview { type: 'file'; content?: string; } export interface FolderContent extends Overview { type: 'folder'; content?: null; } export interface ContentMap { markdown: MarkdownContent; file: FileContent; canvas: CanvasContent; map: MapContent; folder: FolderContent; } export type ExploreContent = ContentMap[FileType]; 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 }