@noteplanco/noteplan-mcp 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/README.md +257 -0
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +8 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/noteplan/embeddings.d.ts +170 -0
  7. package/dist/noteplan/embeddings.d.ts.map +1 -0
  8. package/dist/noteplan/embeddings.js +684 -0
  9. package/dist/noteplan/embeddings.js.map +1 -0
  10. package/dist/noteplan/file-reader.d.ts +77 -0
  11. package/dist/noteplan/file-reader.d.ts.map +1 -0
  12. package/dist/noteplan/file-reader.js +488 -0
  13. package/dist/noteplan/file-reader.js.map +1 -0
  14. package/dist/noteplan/file-writer.d.ts +108 -0
  15. package/dist/noteplan/file-writer.d.ts.map +1 -0
  16. package/dist/noteplan/file-writer.js +621 -0
  17. package/dist/noteplan/file-writer.js.map +1 -0
  18. package/dist/noteplan/filter-store.d.ts +28 -0
  19. package/dist/noteplan/filter-store.d.ts.map +1 -0
  20. package/dist/noteplan/filter-store.js +180 -0
  21. package/dist/noteplan/filter-store.js.map +1 -0
  22. package/dist/noteplan/frontmatter-parser.d.ts +45 -0
  23. package/dist/noteplan/frontmatter-parser.d.ts.map +1 -0
  24. package/dist/noteplan/frontmatter-parser.js +259 -0
  25. package/dist/noteplan/frontmatter-parser.js.map +1 -0
  26. package/dist/noteplan/fuzzy-search.d.ts +7 -0
  27. package/dist/noteplan/fuzzy-search.d.ts.map +1 -0
  28. package/dist/noteplan/fuzzy-search.js +66 -0
  29. package/dist/noteplan/fuzzy-search.js.map +1 -0
  30. package/dist/noteplan/markdown-parser.d.ts +87 -0
  31. package/dist/noteplan/markdown-parser.d.ts.map +1 -0
  32. package/dist/noteplan/markdown-parser.js +519 -0
  33. package/dist/noteplan/markdown-parser.js.map +1 -0
  34. package/dist/noteplan/preferences.d.ts +44 -0
  35. package/dist/noteplan/preferences.d.ts.map +1 -0
  36. package/dist/noteplan/preferences.js +156 -0
  37. package/dist/noteplan/preferences.js.map +1 -0
  38. package/dist/noteplan/ripgrep-search.d.ts +29 -0
  39. package/dist/noteplan/ripgrep-search.d.ts.map +1 -0
  40. package/dist/noteplan/ripgrep-search.js +110 -0
  41. package/dist/noteplan/ripgrep-search.js.map +1 -0
  42. package/dist/noteplan/sqlite-reader.d.ts +77 -0
  43. package/dist/noteplan/sqlite-reader.d.ts.map +1 -0
  44. package/dist/noteplan/sqlite-reader.js +605 -0
  45. package/dist/noteplan/sqlite-reader.js.map +1 -0
  46. package/dist/noteplan/sqlite-writer.d.ts +63 -0
  47. package/dist/noteplan/sqlite-writer.d.ts.map +1 -0
  48. package/dist/noteplan/sqlite-writer.js +574 -0
  49. package/dist/noteplan/sqlite-writer.js.map +1 -0
  50. package/dist/noteplan/types.d.ts +97 -0
  51. package/dist/noteplan/types.d.ts.map +1 -0
  52. package/dist/noteplan/types.js +33 -0
  53. package/dist/noteplan/types.js.map +1 -0
  54. package/dist/noteplan/unified-store.d.ts +289 -0
  55. package/dist/noteplan/unified-store.d.ts.map +1 -0
  56. package/dist/noteplan/unified-store.js +1308 -0
  57. package/dist/noteplan/unified-store.js.map +1 -0
  58. package/dist/server.d.ts +4 -0
  59. package/dist/server.d.ts.map +1 -0
  60. package/dist/server.js +2468 -0
  61. package/dist/server.js.map +1 -0
  62. package/dist/tools/calendar.d.ts +311 -0
  63. package/dist/tools/calendar.d.ts.map +1 -0
  64. package/dist/tools/calendar.js +504 -0
  65. package/dist/tools/calendar.js.map +1 -0
  66. package/dist/tools/embeddings.d.ts +244 -0
  67. package/dist/tools/embeddings.d.ts.map +1 -0
  68. package/dist/tools/embeddings.js +226 -0
  69. package/dist/tools/embeddings.js.map +1 -0
  70. package/dist/tools/events.d.ts +176 -0
  71. package/dist/tools/events.d.ts.map +1 -0
  72. package/dist/tools/events.js +326 -0
  73. package/dist/tools/events.js.map +1 -0
  74. package/dist/tools/filters.d.ts +205 -0
  75. package/dist/tools/filters.d.ts.map +1 -0
  76. package/dist/tools/filters.js +347 -0
  77. package/dist/tools/filters.js.map +1 -0
  78. package/dist/tools/memory.d.ts +6 -0
  79. package/dist/tools/memory.d.ts.map +1 -0
  80. package/dist/tools/memory.js +161 -0
  81. package/dist/tools/memory.js.map +1 -0
  82. package/dist/tools/notes.d.ts +1221 -0
  83. package/dist/tools/notes.d.ts.map +1 -0
  84. package/dist/tools/notes.js +1868 -0
  85. package/dist/tools/notes.js.map +1 -0
  86. package/dist/tools/plugins.d.ts +140 -0
  87. package/dist/tools/plugins.d.ts.map +1 -0
  88. package/dist/tools/plugins.js +782 -0
  89. package/dist/tools/plugins.js.map +1 -0
  90. package/dist/tools/reminders.d.ts +207 -0
  91. package/dist/tools/reminders.d.ts.map +1 -0
  92. package/dist/tools/reminders.js +323 -0
  93. package/dist/tools/reminders.js.map +1 -0
  94. package/dist/tools/search.d.ts +58 -0
  95. package/dist/tools/search.d.ts.map +1 -0
  96. package/dist/tools/search.js +373 -0
  97. package/dist/tools/search.js.map +1 -0
  98. package/dist/tools/spaces.d.ts +484 -0
  99. package/dist/tools/spaces.d.ts.map +1 -0
  100. package/dist/tools/spaces.js +870 -0
  101. package/dist/tools/spaces.js.map +1 -0
  102. package/dist/tools/tasks.d.ts +313 -0
  103. package/dist/tools/tasks.d.ts.map +1 -0
  104. package/dist/tools/tasks.js +690 -0
  105. package/dist/tools/tasks.js.map +1 -0
  106. package/dist/tools/themes.d.ts +91 -0
  107. package/dist/tools/themes.d.ts.map +1 -0
  108. package/dist/tools/themes.js +294 -0
  109. package/dist/tools/themes.js.map +1 -0
  110. package/dist/tools/ui.d.ts +89 -0
  111. package/dist/tools/ui.d.ts.map +1 -0
  112. package/dist/tools/ui.js +137 -0
  113. package/dist/tools/ui.js.map +1 -0
  114. package/dist/utils/applescript.d.ts +5 -0
  115. package/dist/utils/applescript.d.ts.map +1 -0
  116. package/dist/utils/applescript.js +27 -0
  117. package/dist/utils/applescript.js.map +1 -0
  118. package/dist/utils/confirmation-tokens.d.ts +19 -0
  119. package/dist/utils/confirmation-tokens.d.ts.map +1 -0
  120. package/dist/utils/confirmation-tokens.js +58 -0
  121. package/dist/utils/confirmation-tokens.js.map +1 -0
  122. package/dist/utils/date-filters.d.ts +15 -0
  123. package/dist/utils/date-filters.d.ts.map +1 -0
  124. package/dist/utils/date-filters.js +129 -0
  125. package/dist/utils/date-filters.js.map +1 -0
  126. package/dist/utils/date-utils.d.ts +113 -0
  127. package/dist/utils/date-utils.d.ts.map +1 -0
  128. package/dist/utils/date-utils.js +341 -0
  129. package/dist/utils/date-utils.js.map +1 -0
  130. package/dist/utils/folder-matcher.d.ts +14 -0
  131. package/dist/utils/folder-matcher.d.ts.map +1 -0
  132. package/dist/utils/folder-matcher.js +191 -0
  133. package/dist/utils/folder-matcher.js.map +1 -0
  134. package/dist/utils/version.d.ts +10 -0
  135. package/dist/utils/version.d.ts.map +1 -0
  136. package/dist/utils/version.js +88 -0
  137. package/dist/utils/version.js.map +1 -0
  138. package/docs/plugin-api/Calendar.md +448 -0
  139. package/docs/plugin-api/CalendarItem.md +198 -0
  140. package/docs/plugin-api/Clipboard.md +101 -0
  141. package/docs/plugin-api/CommandBar.md +251 -0
  142. package/docs/plugin-api/DataStore.md +700 -0
  143. package/docs/plugin-api/Editor.md +982 -0
  144. package/docs/plugin-api/HTMLView.md +337 -0
  145. package/docs/plugin-api/NoteObject.md +588 -0
  146. package/docs/plugin-api/NotePlan.md +398 -0
  147. package/docs/plugin-api/ParagraphObject.md +242 -0
  148. package/docs/plugin-api/RangeObject.md +56 -0
  149. package/docs/plugin-api/getting-started.md +545 -0
  150. package/docs/plugin-api/plugin-api-condensed.md +526 -0
  151. package/docs/plugin-api/plugin.json +26 -0
  152. package/docs/plugin-api/script.js +542 -0
  153. package/package.json +60 -0
  154. package/scripts/calendar-helper +0 -0
  155. package/scripts/reminders-helper +0 -0
@@ -0,0 +1,97 @@
1
+ export type NoteType = 'calendar' | 'note' | 'trash';
2
+ export type NoteSource = 'local' | 'space';
3
+ export type TaskStatus = 'open' | 'done' | 'cancelled' | 'scheduled';
4
+ export interface Note {
5
+ id: string;
6
+ title: string;
7
+ filename: string;
8
+ content: string;
9
+ type: NoteType;
10
+ source: NoteSource;
11
+ spaceId?: string;
12
+ spaceName?: string;
13
+ folder?: string;
14
+ date?: string;
15
+ modifiedAt?: Date;
16
+ createdAt?: Date;
17
+ }
18
+ export interface Task {
19
+ lineIndex: number;
20
+ content: string;
21
+ rawLine: string;
22
+ status: TaskStatus;
23
+ indentLevel: number;
24
+ hasCheckbox?: boolean;
25
+ marker?: '*' | '-' | '+';
26
+ tags: string[];
27
+ mentions: string[];
28
+ scheduledDate?: string;
29
+ priority?: number;
30
+ }
31
+ export interface Space {
32
+ id: string;
33
+ name: string;
34
+ noteCount: number;
35
+ }
36
+ export type Teamspace = Space;
37
+ export interface SearchResult {
38
+ note: Note;
39
+ matches: SearchMatch[];
40
+ score: number;
41
+ }
42
+ export interface SearchMatch {
43
+ lineNumber: number;
44
+ lineContent: string;
45
+ matchStart: number;
46
+ matchEnd: number;
47
+ }
48
+ export interface Folder {
49
+ id?: string;
50
+ path: string;
51
+ name: string;
52
+ source: NoteSource;
53
+ spaceId?: string;
54
+ }
55
+ export interface SQLiteNoteRow {
56
+ id: string;
57
+ content: string;
58
+ note_type: number;
59
+ title: string;
60
+ filename: string;
61
+ parent: string | null;
62
+ is_dir: number;
63
+ created_at?: string;
64
+ modified_at?: string;
65
+ }
66
+ export declare const SQLITE_NOTE_TYPES: {
67
+ readonly SPACE: 10;
68
+ readonly SPACE_NOTE: 11;
69
+ readonly SPACE_CALENDAR: 12;
70
+ readonly TEAMSPACE: 10;
71
+ readonly TEAMSPACE_NOTE: 11;
72
+ readonly TEAMSPACE_CALENDAR: 12;
73
+ };
74
+ export declare const TASK_MARKERS: {
75
+ readonly OPEN: "* [ ]";
76
+ readonly DONE: "* [x]";
77
+ readonly CANCELLED: "* [-]";
78
+ readonly SCHEDULED: "* [>]";
79
+ readonly CHECKLIST_OPEN: "+ [ ]";
80
+ readonly CHECKLIST_DONE: "+ [x]";
81
+ };
82
+ export declare const TASK_STATUS_MAP: Record<string, TaskStatus>;
83
+ export declare const STATUS_TO_MARKER: Record<TaskStatus, string>;
84
+ export type ParagraphType = 'title' | 'heading' | 'task' | 'checklist' | 'bullet' | 'quote' | 'separator' | 'empty' | 'text';
85
+ export interface ParagraphMetadata {
86
+ type: ParagraphType;
87
+ headingLevel?: number;
88
+ taskStatus?: TaskStatus;
89
+ indentLevel: number;
90
+ tags: string[];
91
+ mentions: string[];
92
+ scheduledDate?: string;
93
+ priority?: number;
94
+ marker?: '*' | '-' | '+';
95
+ hasCheckbox?: boolean;
96
+ }
97
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/noteplan/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ // NotePlan Types
2
+ // Note type constants from SQLite
3
+ export const SQLITE_NOTE_TYPES = {
4
+ SPACE: 10,
5
+ SPACE_NOTE: 11,
6
+ SPACE_CALENDAR: 12,
7
+ // Keep old names as aliases
8
+ TEAMSPACE: 10,
9
+ TEAMSPACE_NOTE: 11,
10
+ TEAMSPACE_CALENDAR: 12,
11
+ };
12
+ // Task markers
13
+ export const TASK_MARKERS = {
14
+ OPEN: '* [ ]',
15
+ DONE: '* [x]',
16
+ CANCELLED: '* [-]',
17
+ SCHEDULED: '* [>]',
18
+ CHECKLIST_OPEN: '+ [ ]',
19
+ CHECKLIST_DONE: '+ [x]',
20
+ };
21
+ export const TASK_STATUS_MAP = {
22
+ '[ ]': 'open',
23
+ '[x]': 'done',
24
+ '[-]': 'cancelled',
25
+ '[>]': 'scheduled',
26
+ };
27
+ export const STATUS_TO_MARKER = {
28
+ 'open': '[ ]',
29
+ 'done': '[x]',
30
+ 'cancelled': '[-]',
31
+ 'scheduled': '[>]',
32
+ };
33
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/noteplan/types.ts"],"names":[],"mappings":"AAAA,iBAAiB;AA+EjB,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,EAAE;IAClB,4BAA4B;IAC5B,SAAS,EAAE,EAAE;IACb,cAAc,EAAE,EAAE;IAClB,kBAAkB,EAAE,EAAE;CACd,CAAC;AAEX,eAAe;AACf,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;IAClB,cAAc,EAAE,OAAO;IACvB,cAAc,EAAE,OAAO;CACf,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;CACnB,CAAC"}
@@ -0,0 +1,289 @@
1
+ import { Note, NoteType, Folder, Space, SearchResult } from './types.js';
2
+ /**
3
+ * Result of folder resolution during note creation
4
+ */
5
+ export interface FolderResolution {
6
+ requested: string | undefined;
7
+ resolved: string | undefined;
8
+ matched: boolean;
9
+ ambiguous: boolean;
10
+ score: number;
11
+ alternatives: string[];
12
+ }
13
+ /**
14
+ * Result of creating a note with folder resolution info
15
+ */
16
+ export interface CreateNoteResult {
17
+ note: Note;
18
+ folderResolution: FolderResolution;
19
+ }
20
+ export interface MoveNoteResult {
21
+ note: Note;
22
+ fromFilename: string;
23
+ toFilename: string;
24
+ destinationFolder: string;
25
+ destinationParentId?: string;
26
+ }
27
+ export interface RenameNoteFileResult {
28
+ note: Note;
29
+ fromFilename: string;
30
+ toFilename: string;
31
+ }
32
+ export interface RenameSpaceNoteResult {
33
+ note: Note;
34
+ fromTitle: string;
35
+ toTitle: string;
36
+ }
37
+ export interface DeleteNoteResult {
38
+ source: 'local' | 'space';
39
+ fromIdentifier: string;
40
+ toIdentifier: string;
41
+ noteId?: string;
42
+ }
43
+ export interface RestoreNoteResult {
44
+ source: 'local' | 'space';
45
+ note: Note;
46
+ fromIdentifier: string;
47
+ toIdentifier: string;
48
+ }
49
+ /**
50
+ * Resolve a space name or ID to a valid space UUID.
51
+ * Accepts either a UUID (exact match) or a human-readable name (case-insensitive).
52
+ * Returns undefined when the input is undefined/empty (pass-through for optional params).
53
+ * Throws when a non-empty value doesn't match any known space.
54
+ */
55
+ export declare function resolveSpaceId(space: string | undefined): string | undefined;
56
+ /**
57
+ * Get a note by various identifiers
58
+ */
59
+ export declare function getNote(options: {
60
+ id?: string;
61
+ title?: string;
62
+ filename?: string;
63
+ date?: string;
64
+ space?: string;
65
+ }): Note | null;
66
+ /**
67
+ * List all notes, optionally filtered
68
+ */
69
+ export declare function listNotes(options?: {
70
+ folder?: string;
71
+ space?: string;
72
+ type?: NoteType;
73
+ }): Note[];
74
+ /**
75
+ * Enhanced search options
76
+ */
77
+ export interface SearchOptions {
78
+ searchField?: 'content' | 'title' | 'filename' | 'title_or_filename';
79
+ types?: NoteType[];
80
+ folder?: string;
81
+ space?: string;
82
+ limit?: number;
83
+ fuzzy?: boolean;
84
+ caseSensitive?: boolean;
85
+ contextLines?: number;
86
+ modifiedAfter?: string;
87
+ modifiedBefore?: string;
88
+ createdAfter?: string;
89
+ createdBefore?: string;
90
+ propertyFilters?: Record<string, string>;
91
+ propertyCaseSensitive?: boolean;
92
+ }
93
+ export interface SearchExecutionResult {
94
+ results: SearchResult[];
95
+ partialResults: boolean;
96
+ backend: 'ripgrep' | 'fallback' | 'simple';
97
+ warnings: string[];
98
+ }
99
+ /**
100
+ * Search across all notes with enhanced options
101
+ */
102
+ export declare function searchNotes(query: string, options?: SearchOptions): Promise<SearchExecutionResult>;
103
+ /**
104
+ * Create a new note with smart folder matching
105
+ */
106
+ export declare function createNote(title: string, content?: string, options?: {
107
+ folder?: string;
108
+ space?: string;
109
+ createNewFolder?: boolean;
110
+ }): CreateNoteResult;
111
+ /**
112
+ * Update a note's content
113
+ */
114
+ export declare function updateNote(identifier: string, content: string, options?: {
115
+ source?: Note['source'];
116
+ }): Note;
117
+ /**
118
+ * Delete a note
119
+ */
120
+ export declare function deleteNote(identifier: string): DeleteNoteResult;
121
+ export declare function previewMoveNote(identifier: string, destinationFolder: string): MoveNoteResult;
122
+ export declare function moveNote(identifier: string, destinationFolder: string): MoveNoteResult;
123
+ export declare function previewRestoreNote(identifier: string, destinationFolder?: string): RestoreNoteResult;
124
+ export declare function restoreNote(identifier: string, destinationFolder?: string): RestoreNoteResult;
125
+ export declare function previewRenameNoteFile(filename: string, newFilename: string, keepExtension?: boolean): RenameNoteFileResult;
126
+ export declare function renameNoteFile(filename: string, newFilename: string, keepExtension?: boolean): RenameNoteFileResult;
127
+ export declare function renameSpaceNote(identifier: string, newTitle: string): RenameSpaceNoteResult;
128
+ /**
129
+ * Get today's daily note
130
+ */
131
+ export declare function getTodayNote(space?: string): Note | null;
132
+ /**
133
+ * Get a calendar note by date
134
+ */
135
+ export declare function getCalendarNote(date: string, space?: string): Note | null;
136
+ /**
137
+ * Ensure a calendar note exists, create if not
138
+ */
139
+ export declare function ensureCalendarNote(date: string, space?: string): Note;
140
+ /**
141
+ * Add content to today's note
142
+ */
143
+ export declare function addToToday(content: string, position?: 'start' | 'end', space?: string): Note;
144
+ /**
145
+ * List all spaces
146
+ */
147
+ export declare function listSpaces(): Space[];
148
+ export declare const listTeamspaces: typeof listSpaces;
149
+ export interface ListFoldersOptions {
150
+ space?: string;
151
+ includeLocal?: boolean;
152
+ includeSpaces?: boolean;
153
+ query?: string;
154
+ maxDepth?: number;
155
+ parentPath?: string;
156
+ recursive?: boolean;
157
+ }
158
+ export interface LocalFolderCreateResult {
159
+ source: 'local';
160
+ path: string;
161
+ name: string;
162
+ }
163
+ export interface SpaceFolderCreateResult {
164
+ source: 'space';
165
+ id: string;
166
+ path: string;
167
+ name: string;
168
+ spaceId: string;
169
+ parentId: string;
170
+ }
171
+ export type FolderCreateResult = LocalFolderCreateResult | SpaceFolderCreateResult;
172
+ export interface LocalFolderMoveResult {
173
+ source: 'local';
174
+ fromPath: string;
175
+ toPath: string;
176
+ destinationFolder: string;
177
+ affectedNoteCount?: number;
178
+ affectedFolderCount?: number;
179
+ }
180
+ export interface SpaceFolderMoveResult {
181
+ source: 'space';
182
+ spaceId: string;
183
+ folderId: string;
184
+ fromPath: string;
185
+ toPath: string;
186
+ destinationParentId: string;
187
+ affectedNoteCount?: number;
188
+ affectedFolderCount?: number;
189
+ }
190
+ export type FolderMoveResult = LocalFolderMoveResult | SpaceFolderMoveResult;
191
+ export interface LocalFolderDeleteResult {
192
+ source: 'local';
193
+ fromPath: string;
194
+ trashedPath: string;
195
+ affectedNoteCount?: number;
196
+ affectedFolderCount?: number;
197
+ }
198
+ export interface SpaceFolderDeleteResult {
199
+ source: 'space';
200
+ spaceId: string;
201
+ folderId: string;
202
+ fromPath: string;
203
+ trashFolderId: string;
204
+ affectedNoteCount?: number;
205
+ affectedFolderCount?: number;
206
+ }
207
+ export type FolderDeleteResult = LocalFolderDeleteResult | SpaceFolderDeleteResult;
208
+ export interface LocalFolderRenameResult {
209
+ source: 'local';
210
+ fromPath: string;
211
+ toPath: string;
212
+ }
213
+ export interface SpaceFolderRenameResult {
214
+ source: 'space';
215
+ spaceId: string;
216
+ folderId: string;
217
+ fromPath: string;
218
+ toPath: string;
219
+ previousName: string;
220
+ name: string;
221
+ }
222
+ export type FolderRenameResult = LocalFolderRenameResult | SpaceFolderRenameResult;
223
+ /**
224
+ * List folders with optional source/depth/query filtering
225
+ */
226
+ export declare function listFolders(options?: ListFoldersOptions): Folder[];
227
+ export declare function previewCreateFolder(options: {
228
+ path: string;
229
+ } | {
230
+ space: string;
231
+ name: string;
232
+ parent?: string;
233
+ }): FolderCreateResult;
234
+ export declare function createFolder(options: {
235
+ path: string;
236
+ } | {
237
+ space: string;
238
+ name: string;
239
+ parent?: string;
240
+ }): FolderCreateResult;
241
+ export declare function previewMoveFolder(options: {
242
+ sourcePath: string;
243
+ destinationFolder: string;
244
+ } | {
245
+ space: string;
246
+ source: string;
247
+ destination: string;
248
+ }): FolderMoveResult;
249
+ export declare function moveFolder(options: {
250
+ sourcePath: string;
251
+ destinationFolder: string;
252
+ } | {
253
+ space: string;
254
+ source: string;
255
+ destination: string;
256
+ }): FolderMoveResult;
257
+ export declare function previewDeleteFolder(options: {
258
+ path: string;
259
+ } | {
260
+ space: string;
261
+ source: string;
262
+ }): FolderDeleteResult;
263
+ export declare function deleteFolder(options: {
264
+ path: string;
265
+ } | {
266
+ space: string;
267
+ source: string;
268
+ }): FolderDeleteResult;
269
+ export declare function previewRenameFolder(options: {
270
+ sourcePath: string;
271
+ newName: string;
272
+ } | {
273
+ space: string;
274
+ source: string;
275
+ newName: string;
276
+ }): FolderRenameResult;
277
+ export declare function renameFolder(options: {
278
+ sourcePath: string;
279
+ newName: string;
280
+ } | {
281
+ space: string;
282
+ source: string;
283
+ newName: string;
284
+ }): FolderRenameResult;
285
+ /**
286
+ * List all tags
287
+ */
288
+ export declare function listTags(space?: string): string[];
289
+ //# sourceMappingURL=unified-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified-store.d.ts","sourceRoot":"","sources":["../../src/noteplan/unified-store.ts"],"names":[],"mappings":"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"}