AT protocol bookmarking platforms in obsidian
at client-cache 27 lines 852 B view raw
1import type ATmarkPlugin from "../main"; 2 3export interface ATmarkItem { 4 render(container: HTMLElement): void; 5 renderDetail(container: HTMLElement): void; 6 canAddNotes(): boolean; 7 canEdit(): boolean; 8 openEditModal(onSuccess?: () => void): void; 9 getUri(): string; 10 getCid(): string; 11 getCreatedAt(): string; 12 getSource(): "semble" | "bookmark" | "margin"; 13 getAttachedNotes?(): Array<{ uri: string; text: string }>; 14} 15 16export interface SourceFilter { 17 type: string; 18 value: string; 19 label?: string; 20} 21 22export interface DataSource { 23 readonly name: "semble" | "bookmark" | "margin"; 24 fetchItems(filters: SourceFilter[], plugin: ATmarkPlugin): Promise<ATmarkItem[]>; 25 getAvailableFilters(): Promise<SourceFilter[]>; 26 renderFilterUI(container: HTMLElement, activeFilters: Map<string, SourceFilter>, onChange: () => void, plugin: ATmarkPlugin): void; 27}