-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypes.ts
More file actions
63 lines (54 loc) · 1.36 KB
/
Copy pathtypes.ts
File metadata and controls
63 lines (54 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// Basic type declarations for Obsidian API
// This is a simplified version for development purposes
export interface TFile {
path: string
name: string
extension: string
stat: {
mtime: number
ctime: number
size: number
}
}
export interface TFolder {
path: string
name: string
children: (TFile | TFolder)[]
isRoot(): boolean
}
export interface TAbstractFile {
path: string
name: string
}
export interface Plugin {
app: App
addRibbonIcon(icon: string, title: string, callback: () => void): void
addSettingTab(settingTab: PluginSettingTab): void
loadData(): Promise<any>
saveData(data: any): Promise<void>
onunload(): void
}
export interface App {
vault: {
getFiles(): TFile[]
on(event: string, callback: (file: TAbstractFile) => void): void
}
}
export interface PluginSettingTab {
app: App
plugin: Plugin
display(): void
}
export interface Setting {
setName(name: string): Setting
setDesc(desc: string): Setting
addText(callback: (text: any) => Setting): Setting
addSlider(callback: (slider: any) => Setting): Setting
addToggle(callback: (toggle: any) => Setting): Setting
addDropdown(callback: (dropdown: any) => Setting): Setting
}
export declare class Notice {
constructor(message: string)
}
export declare function PluginSettingTab(app: App, plugin: Plugin): PluginSettingTab
export declare function Setting(containerEl: HTMLElement): Setting