@withpica/mcp-server 2.1.0

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 (226) hide show
  1. package/README.md +305 -0
  2. package/dist/config.d.ts +34 -0
  3. package/dist/config.d.ts.map +1 -0
  4. package/dist/config.js +33 -0
  5. package/dist/config.js.map +1 -0
  6. package/dist/index.d.ts +7 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +34 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/pica-sdk.d.ts +1162 -0
  11. package/dist/pica-sdk.d.ts.map +1 -0
  12. package/dist/pica-sdk.js +1371 -0
  13. package/dist/pica-sdk.js.map +1 -0
  14. package/dist/prompts/index.d.ts +78 -0
  15. package/dist/prompts/index.d.ts.map +1 -0
  16. package/dist/prompts/index.js +513 -0
  17. package/dist/prompts/index.js.map +1 -0
  18. package/dist/resources/index.d.ts +64 -0
  19. package/dist/resources/index.d.ts.map +1 -0
  20. package/dist/resources/index.js +310 -0
  21. package/dist/resources/index.js.map +1 -0
  22. package/dist/resources/llms-primer.d.ts +2 -0
  23. package/dist/resources/llms-primer.d.ts.map +1 -0
  24. package/dist/resources/llms-primer.js +67 -0
  25. package/dist/resources/llms-primer.js.map +1 -0
  26. package/dist/server.d.ts +27 -0
  27. package/dist/server.d.ts.map +1 -0
  28. package/dist/server.js +140 -0
  29. package/dist/server.js.map +1 -0
  30. package/dist/tools/agreement-types.d.ts +37 -0
  31. package/dist/tools/agreement-types.d.ts.map +1 -0
  32. package/dist/tools/agreement-types.js +579 -0
  33. package/dist/tools/agreement-types.js.map +1 -0
  34. package/dist/tools/agreements.d.ts +21 -0
  35. package/dist/tools/agreements.d.ts.map +1 -0
  36. package/dist/tools/agreements.js +328 -0
  37. package/dist/tools/agreements.js.map +1 -0
  38. package/dist/tools/analytics.d.ts +20 -0
  39. package/dist/tools/analytics.d.ts.map +1 -0
  40. package/dist/tools/analytics.js +126 -0
  41. package/dist/tools/analytics.js.map +1 -0
  42. package/dist/tools/assets.d.ts +23 -0
  43. package/dist/tools/assets.d.ts.map +1 -0
  44. package/dist/tools/assets.js +220 -0
  45. package/dist/tools/assets.js.map +1 -0
  46. package/dist/tools/audio-files.d.ts +21 -0
  47. package/dist/tools/audio-files.d.ts.map +1 -0
  48. package/dist/tools/audio-files.js +358 -0
  49. package/dist/tools/audio-files.js.map +1 -0
  50. package/dist/tools/bulk.d.ts +16 -0
  51. package/dist/tools/bulk.d.ts.map +1 -0
  52. package/dist/tools/bulk.js +82 -0
  53. package/dist/tools/bulk.js.map +1 -0
  54. package/dist/tools/calendar.d.ts +15 -0
  55. package/dist/tools/calendar.d.ts.map +1 -0
  56. package/dist/tools/calendar.js +69 -0
  57. package/dist/tools/calendar.js.map +1 -0
  58. package/dist/tools/collaborators.d.ts +17 -0
  59. package/dist/tools/collaborators.d.ts.map +1 -0
  60. package/dist/tools/collaborators.js +133 -0
  61. package/dist/tools/collaborators.js.map +1 -0
  62. package/dist/tools/comparisons.d.ts +22 -0
  63. package/dist/tools/comparisons.d.ts.map +1 -0
  64. package/dist/tools/comparisons.js +86 -0
  65. package/dist/tools/comparisons.js.map +1 -0
  66. package/dist/tools/credits.d.ts +17 -0
  67. package/dist/tools/credits.d.ts.map +1 -0
  68. package/dist/tools/credits.js +136 -0
  69. package/dist/tools/credits.js.map +1 -0
  70. package/dist/tools/dashboard.d.ts +20 -0
  71. package/dist/tools/dashboard.d.ts.map +1 -0
  72. package/dist/tools/dashboard.js +156 -0
  73. package/dist/tools/dashboard.js.map +1 -0
  74. package/dist/tools/directory.d.ts +15 -0
  75. package/dist/tools/directory.d.ts.map +1 -0
  76. package/dist/tools/directory.js +108 -0
  77. package/dist/tools/directory.js.map +1 -0
  78. package/dist/tools/disputes.d.ts +18 -0
  79. package/dist/tools/disputes.d.ts.map +1 -0
  80. package/dist/tools/disputes.js +66 -0
  81. package/dist/tools/disputes.js.map +1 -0
  82. package/dist/tools/documents.d.ts +15 -0
  83. package/dist/tools/documents.d.ts.map +1 -0
  84. package/dist/tools/documents.js +38 -0
  85. package/dist/tools/documents.js.map +1 -0
  86. package/dist/tools/duplicates.d.ts +16 -0
  87. package/dist/tools/duplicates.d.ts.map +1 -0
  88. package/dist/tools/duplicates.js +72 -0
  89. package/dist/tools/duplicates.js.map +1 -0
  90. package/dist/tools/enrichment.d.ts +23 -0
  91. package/dist/tools/enrichment.d.ts.map +1 -0
  92. package/dist/tools/enrichment.js +207 -0
  93. package/dist/tools/enrichment.js.map +1 -0
  94. package/dist/tools/exports.d.ts +19 -0
  95. package/dist/tools/exports.d.ts.map +1 -0
  96. package/dist/tools/exports.js +155 -0
  97. package/dist/tools/exports.js.map +1 -0
  98. package/dist/tools/health.d.ts +17 -0
  99. package/dist/tools/health.d.ts.map +1 -0
  100. package/dist/tools/health.js +69 -0
  101. package/dist/tools/health.js.map +1 -0
  102. package/dist/tools/import-documents.d.ts +21 -0
  103. package/dist/tools/import-documents.d.ts.map +1 -0
  104. package/dist/tools/import-documents.js +191 -0
  105. package/dist/tools/import-documents.js.map +1 -0
  106. package/dist/tools/import.d.ts +29 -0
  107. package/dist/tools/import.d.ts.map +1 -0
  108. package/dist/tools/import.js +404 -0
  109. package/dist/tools/import.js.map +1 -0
  110. package/dist/tools/index.d.ts +48 -0
  111. package/dist/tools/index.d.ts.map +1 -0
  112. package/dist/tools/index.js +394 -0
  113. package/dist/tools/index.js.map +1 -0
  114. package/dist/tools/integrations.d.ts +15 -0
  115. package/dist/tools/integrations.d.ts.map +1 -0
  116. package/dist/tools/integrations.js +102 -0
  117. package/dist/tools/integrations.js.map +1 -0
  118. package/dist/tools/licensing.d.ts +40 -0
  119. package/dist/tools/licensing.d.ts.map +1 -0
  120. package/dist/tools/licensing.js +436 -0
  121. package/dist/tools/licensing.js.map +1 -0
  122. package/dist/tools/memory.d.ts +21 -0
  123. package/dist/tools/memory.d.ts.map +1 -0
  124. package/dist/tools/memory.js +121 -0
  125. package/dist/tools/memory.js.map +1 -0
  126. package/dist/tools/multimedia.d.ts +19 -0
  127. package/dist/tools/multimedia.d.ts.map +1 -0
  128. package/dist/tools/multimedia.js +293 -0
  129. package/dist/tools/multimedia.js.map +1 -0
  130. package/dist/tools/notes.d.ts +21 -0
  131. package/dist/tools/notes.d.ts.map +1 -0
  132. package/dist/tools/notes.js +126 -0
  133. package/dist/tools/notes.js.map +1 -0
  134. package/dist/tools/notifications.d.ts +17 -0
  135. package/dist/tools/notifications.d.ts.map +1 -0
  136. package/dist/tools/notifications.js +117 -0
  137. package/dist/tools/notifications.js.map +1 -0
  138. package/dist/tools/people.d.ts +53 -0
  139. package/dist/tools/people.d.ts.map +1 -0
  140. package/dist/tools/people.js +534 -0
  141. package/dist/tools/people.js.map +1 -0
  142. package/dist/tools/pica-score.d.ts +15 -0
  143. package/dist/tools/pica-score.d.ts.map +1 -0
  144. package/dist/tools/pica-score.js +30 -0
  145. package/dist/tools/pica-score.js.map +1 -0
  146. package/dist/tools/projects.d.ts +19 -0
  147. package/dist/tools/projects.d.ts.map +1 -0
  148. package/dist/tools/projects.js +142 -0
  149. package/dist/tools/projects.js.map +1 -0
  150. package/dist/tools/purchases.d.ts +15 -0
  151. package/dist/tools/purchases.d.ts.map +1 -0
  152. package/dist/tools/purchases.js +65 -0
  153. package/dist/tools/purchases.js.map +1 -0
  154. package/dist/tools/recordings.d.ts +41 -0
  155. package/dist/tools/recordings.d.ts.map +1 -0
  156. package/dist/tools/recordings.js +293 -0
  157. package/dist/tools/recordings.js.map +1 -0
  158. package/dist/tools/registration.d.ts +16 -0
  159. package/dist/tools/registration.d.ts.map +1 -0
  160. package/dist/tools/registration.js +52 -0
  161. package/dist/tools/registration.js.map +1 -0
  162. package/dist/tools/releases.d.ts +18 -0
  163. package/dist/tools/releases.d.ts.map +1 -0
  164. package/dist/tools/releases.js +138 -0
  165. package/dist/tools/releases.js.map +1 -0
  166. package/dist/tools/royalties.d.ts +23 -0
  167. package/dist/tools/royalties.d.ts.map +1 -0
  168. package/dist/tools/royalties.js +263 -0
  169. package/dist/tools/royalties.js.map +1 -0
  170. package/dist/tools/search.d.ts +30 -0
  171. package/dist/tools/search.d.ts.map +1 -0
  172. package/dist/tools/search.js +117 -0
  173. package/dist/tools/search.js.map +1 -0
  174. package/dist/tools/send.d.ts +18 -0
  175. package/dist/tools/send.d.ts.map +1 -0
  176. package/dist/tools/send.js +189 -0
  177. package/dist/tools/send.js.map +1 -0
  178. package/dist/tools/sessions.d.ts +18 -0
  179. package/dist/tools/sessions.d.ts.map +1 -0
  180. package/dist/tools/sessions.js +107 -0
  181. package/dist/tools/sessions.js.map +1 -0
  182. package/dist/tools/settings.d.ts +18 -0
  183. package/dist/tools/settings.d.ts.map +1 -0
  184. package/dist/tools/settings.js +98 -0
  185. package/dist/tools/settings.js.map +1 -0
  186. package/dist/tools/share-links.d.ts +19 -0
  187. package/dist/tools/share-links.d.ts.map +1 -0
  188. package/dist/tools/share-links.js +126 -0
  189. package/dist/tools/share-links.js.map +1 -0
  190. package/dist/tools/split-sheets.d.ts +24 -0
  191. package/dist/tools/split-sheets.d.ts.map +1 -0
  192. package/dist/tools/split-sheets.js +189 -0
  193. package/dist/tools/split-sheets.js.map +1 -0
  194. package/dist/tools/team.d.ts +22 -0
  195. package/dist/tools/team.d.ts.map +1 -0
  196. package/dist/tools/team.js +139 -0
  197. package/dist/tools/team.js.map +1 -0
  198. package/dist/tools/telegram.d.ts +20 -0
  199. package/dist/tools/telegram.d.ts.map +1 -0
  200. package/dist/tools/telegram.js +94 -0
  201. package/dist/tools/telegram.js.map +1 -0
  202. package/dist/tools/uploads.d.ts +17 -0
  203. package/dist/tools/uploads.d.ts.map +1 -0
  204. package/dist/tools/uploads.js +159 -0
  205. package/dist/tools/uploads.js.map +1 -0
  206. package/dist/tools/works.d.ts +53 -0
  207. package/dist/tools/works.d.ts.map +1 -0
  208. package/dist/tools/works.js +517 -0
  209. package/dist/tools/works.js.map +1 -0
  210. package/dist/utils/credit-gate.d.ts +17 -0
  211. package/dist/utils/credit-gate.d.ts.map +1 -0
  212. package/dist/utils/credit-gate.js +111 -0
  213. package/dist/utils/credit-gate.js.map +1 -0
  214. package/dist/utils/errors.d.ts +29 -0
  215. package/dist/utils/errors.d.ts.map +1 -0
  216. package/dist/utils/errors.js +114 -0
  217. package/dist/utils/errors.js.map +1 -0
  218. package/dist/utils/formatting.d.ts +63 -0
  219. package/dist/utils/formatting.d.ts.map +1 -0
  220. package/dist/utils/formatting.js +130 -0
  221. package/dist/utils/formatting.js.map +1 -0
  222. package/dist/utils/mpp.d.ts +78 -0
  223. package/dist/utils/mpp.d.ts.map +1 -0
  224. package/dist/utils/mpp.js +136 -0
  225. package/dist/utils/mpp.js.map +1 -0
  226. package/package.json +44 -0
@@ -0,0 +1,1162 @@
1
+ /**
2
+ * Lightweight PICA SDK client for MCP server
3
+ * Uses the PICA API directly without external dependencies
4
+ */
5
+ interface CatalogStats {
6
+ works: {
7
+ total: number;
8
+ with_iswc: number;
9
+ };
10
+ recordings: {
11
+ total: number;
12
+ with_isrc: number;
13
+ };
14
+ people: {
15
+ total: number;
16
+ with_email: number;
17
+ with_isni: number;
18
+ with_musicbrainz: number;
19
+ };
20
+ agreements: {
21
+ total: number;
22
+ };
23
+ }
24
+ interface PicaClientConfig {
25
+ apiKey: string;
26
+ baseUrl?: string;
27
+ debug?: boolean;
28
+ }
29
+ interface PaginatedResult<T> {
30
+ data: T[];
31
+ total: number;
32
+ hasMore: boolean;
33
+ }
34
+ interface Work {
35
+ id: string;
36
+ title: string;
37
+ work_type: string;
38
+ work_status?: string;
39
+ release_format?: string;
40
+ iswc?: string;
41
+ isrc?: string;
42
+ primary_artist?: string;
43
+ duration_seconds?: number;
44
+ is_verified: boolean;
45
+ lyrics?: string;
46
+ genre?: string;
47
+ mood?: string;
48
+ label?: string;
49
+ release_date?: string;
50
+ album_art_url?: string;
51
+ spotify_track_uri?: string;
52
+ youtube_video_id?: string;
53
+ youtube_view_count?: number;
54
+ spotify_popularity?: number;
55
+ spotify_streams?: number;
56
+ prs_registered?: boolean;
57
+ ppl_registered?: boolean;
58
+ published?: boolean;
59
+ is_featured?: boolean;
60
+ mlc_song_code?: string;
61
+ completeness_score?: number | null;
62
+ ai_disclosure?: Record<string, unknown>;
63
+ provenance_attestation?: Record<string, unknown>;
64
+ created_at: string;
65
+ updated_at: string;
66
+ }
67
+ interface Person {
68
+ id: string;
69
+ first_name?: string;
70
+ last_name?: string;
71
+ email?: string;
72
+ biography?: string;
73
+ isni?: string;
74
+ musicbrainz_id?: string;
75
+ created_at: string;
76
+ updated_at: string;
77
+ }
78
+ interface Recording {
79
+ id: string;
80
+ title?: string;
81
+ isrc?: string;
82
+ duration_seconds?: number;
83
+ work_id?: string;
84
+ created_at: string;
85
+ updated_at: string;
86
+ }
87
+ interface WorkCredit {
88
+ person_id: string;
89
+ role: string;
90
+ splits: number;
91
+ person_name?: string;
92
+ ipi?: string;
93
+ verified?: boolean;
94
+ split_status?: string;
95
+ is_owner?: boolean;
96
+ }
97
+ interface WorkCreditsInput {
98
+ credits: Array<{
99
+ person_id: string;
100
+ role: string;
101
+ splits: number;
102
+ }>;
103
+ }
104
+ interface PicaScorePillar {
105
+ name: string;
106
+ slug: "income" | "ownership" | "asset" | "verification";
107
+ score: number;
108
+ weight: number;
109
+ status: "strong" | "developing" | "weak";
110
+ suggestions: string[];
111
+ details: Record<string, unknown>;
112
+ }
113
+ interface PicaScore {
114
+ composite: number;
115
+ grade: "A" | "B" | "C" | "D" | "F";
116
+ pillars: PicaScorePillar[];
117
+ topActions: string[];
118
+ calculatedAt: string;
119
+ }
120
+ interface AudioFile {
121
+ id: string;
122
+ work_id: string | null;
123
+ title: string;
124
+ filename: string;
125
+ file_type: "master" | "instrumental" | "stem" | "demo" | "version";
126
+ file_size: number;
127
+ audio_format: string;
128
+ cdn_url?: string;
129
+ duration_seconds: number | null;
130
+ detected_bpm: number | null;
131
+ detected_key: string | null;
132
+ detected_energy: number | null;
133
+ detected_valence: number | null;
134
+ detected_mood: string[] | null;
135
+ metadata_extracted: boolean;
136
+ extraction_error: string | null;
137
+ published: boolean;
138
+ classification?: string;
139
+ notes?: string;
140
+ created_at: string;
141
+ updated_at: string;
142
+ }
143
+ interface AudioAnalysisStatus {
144
+ status: "processing" | "completed" | "failed" | "not_started";
145
+ detected_bpm?: number | null;
146
+ detected_key?: string | null;
147
+ duration_seconds?: number | null;
148
+ error?: string | null;
149
+ }
150
+ interface MultimediaItem {
151
+ id: string;
152
+ organisation_id: string;
153
+ user_id?: string;
154
+ content_type: string;
155
+ classification?: string;
156
+ title: string;
157
+ caption?: string;
158
+ description?: string;
159
+ tags?: string[];
160
+ url?: string;
161
+ thumbnail_url?: string;
162
+ file_name?: string;
163
+ file_size?: number;
164
+ mime_type?: string;
165
+ duration_seconds?: number;
166
+ youtube_video_id?: string;
167
+ youtube_url?: string;
168
+ spotify_track_id?: string;
169
+ spotify_track_uri?: string;
170
+ soundcloud_url?: string;
171
+ is_published?: boolean;
172
+ created_at: string;
173
+ updated_at: string;
174
+ }
175
+ interface Agreement {
176
+ id: string;
177
+ organisation_id: string;
178
+ title: string;
179
+ agreement_type: string;
180
+ status: string;
181
+ other_party_name: string;
182
+ other_party_type?: string;
183
+ signing_date?: string;
184
+ start_date?: string;
185
+ end_date?: string;
186
+ description?: string;
187
+ notes?: string;
188
+ tags?: string[];
189
+ financial_terms?: Record<string, unknown>;
190
+ agreement_terms?: Record<string, unknown>;
191
+ created_at: string;
192
+ updated_at: string;
193
+ }
194
+ interface AgreementWorkLink {
195
+ id: string;
196
+ agreement_id: string;
197
+ work_id: string;
198
+ royalty_split_percentage?: number;
199
+ notes?: string;
200
+ }
201
+ interface SyncSearchParams {
202
+ mood?: string;
203
+ genre?: string;
204
+ min_bpm?: number;
205
+ max_bpm?: number;
206
+ key?: string;
207
+ min_energy?: number;
208
+ max_energy?: number;
209
+ min_valence?: number;
210
+ max_valence?: number;
211
+ min_duration?: number;
212
+ max_duration?: number;
213
+ instrumental_only?: boolean;
214
+ available_for_sync?: boolean;
215
+ limit?: number;
216
+ }
217
+ interface SyncTrack {
218
+ id: string;
219
+ title: string;
220
+ filename: string;
221
+ duration_seconds: number | null;
222
+ detected_bpm: number | null;
223
+ detected_key: string | null;
224
+ detected_energy: number | null;
225
+ detected_mood: string[] | null;
226
+ work_id: string | null;
227
+ work?: {
228
+ id: string;
229
+ title: string;
230
+ primary_artist: string | null;
231
+ };
232
+ cdn_url: string | null;
233
+ published: boolean;
234
+ }
235
+ interface SyncSearchResult {
236
+ tracks: SyncTrack[];
237
+ count: number;
238
+ filters: Record<string, unknown>;
239
+ }
240
+ interface LicenseEnquiryInput {
241
+ work_id: string;
242
+ track_title: string;
243
+ contact_name: string;
244
+ contact_email: string;
245
+ company_name?: string;
246
+ project_type: "tv_ad" | "film" | "social_media" | "game" | "podcast" | "corporate" | "other";
247
+ project_description: string;
248
+ territory: string;
249
+ duration: string;
250
+ distribution?: string[];
251
+ proposed_budget_amount: number;
252
+ proposed_budget_currency: string;
253
+ budget_notes?: string;
254
+ }
255
+ interface LicenseEnquiry {
256
+ id: string;
257
+ organisation_id: string;
258
+ work_id: string;
259
+ track_title: string;
260
+ contact_name: string;
261
+ contact_email: string;
262
+ company_name: string | null;
263
+ project_type: string;
264
+ project_description: string;
265
+ territory: string;
266
+ duration: string;
267
+ distribution: string[] | null;
268
+ proposed_budget_amount: number;
269
+ proposed_budget_currency: string;
270
+ budget_notes: string | null;
271
+ status: string;
272
+ your_counter_offer: number | null;
273
+ your_notes: string | null;
274
+ invoice_id: string | null;
275
+ agreement_id: string | null;
276
+ responded_at: string | null;
277
+ created_at: string;
278
+ updated_at: string;
279
+ }
280
+ declare class ApiError extends Error {
281
+ status: number;
282
+ retryable: boolean;
283
+ retryAfterMs?: number | undefined;
284
+ constructor(message: string, status: number, retryable: boolean, retryAfterMs?: number | undefined);
285
+ }
286
+ declare class BaseResource {
287
+ protected baseUrl: string;
288
+ protected apiKey: string;
289
+ protected debug: boolean;
290
+ constructor(baseUrl: string, apiKey: string, debug: boolean);
291
+ private fetchWithTimeout;
292
+ private fetchWithRetry;
293
+ protected request<T>(method: string, path: string, body?: any): Promise<T>;
294
+ /**
295
+ * Make a request and return paginated result with metadata
296
+ */
297
+ protected requestPaginated<T>(method: string, path: string, body?: unknown): Promise<PaginatedResult<T>>;
298
+ }
299
+ export { ApiError };
300
+ declare class WorksResource extends BaseResource {
301
+ list(params?: {
302
+ limit?: number;
303
+ }): Promise<Work[]>;
304
+ search(params: {
305
+ query?: string;
306
+ limit?: number;
307
+ offset?: number;
308
+ status?: string;
309
+ type?: string;
310
+ }): Promise<PaginatedResult<Work>>;
311
+ get(id: string): Promise<Work>;
312
+ create(data: Partial<Work>): Promise<Work>;
313
+ update(id: string, updates: Partial<Work>): Promise<Work>;
314
+ delete(id: string): Promise<void>;
315
+ verify(id: string): Promise<Work>;
316
+ bulkDelete(ids: string[]): Promise<void>;
317
+ }
318
+ declare class PeopleResource extends BaseResource {
319
+ list(params?: {
320
+ limit?: number;
321
+ }): Promise<Person[]>;
322
+ search(params: {
323
+ query?: string;
324
+ limit?: number;
325
+ offset?: number;
326
+ }): Promise<PaginatedResult<Person>>;
327
+ get(id: string): Promise<Person>;
328
+ create(data: Partial<Person>): Promise<Person>;
329
+ update(id: string, updates: Partial<Person>): Promise<Person>;
330
+ delete(id: string): Promise<void>;
331
+ enrichFromISNI(id: string, isni: string): Promise<Person>;
332
+ enrichFromMusicBrainz(id: string, musicbrainz_id: string): Promise<Person>;
333
+ }
334
+ declare class LicensingResource extends BaseResource {
335
+ /**
336
+ * Search for sync-licensable tracks by audio characteristics
337
+ */
338
+ searchForSync(params?: SyncSearchParams): Promise<SyncSearchResult>;
339
+ /**
340
+ * Submit a license enquiry for a track
341
+ */
342
+ submitEnquiry(enquiry: LicenseEnquiryInput): Promise<LicenseEnquiry>;
343
+ /**
344
+ * List license enquiries with optional filters
345
+ */
346
+ listEnquiries(params?: {
347
+ work_id?: string;
348
+ status?: string;
349
+ project_type?: string;
350
+ territory?: string;
351
+ limit?: number;
352
+ offset?: number;
353
+ }): Promise<LicenseEnquiry[]>;
354
+ /**
355
+ * Get a specific license enquiry by ID
356
+ */
357
+ getEnquiry(id: string): Promise<LicenseEnquiry>;
358
+ /**
359
+ * Update a license enquiry status
360
+ */
361
+ updateEnquiryStatus(id: string, status: string, notes?: string): Promise<LicenseEnquiry>;
362
+ }
363
+ declare class CreditsResource extends BaseResource {
364
+ listForWork(workId: string): Promise<WorkCredit[]>;
365
+ updateForWork(workId: string, credits: WorkCreditsInput): Promise<WorkCredit[]>;
366
+ }
367
+ declare class CreditsBalanceResource extends BaseResource {
368
+ getBalance(): Promise<any>;
369
+ purchase(params: {
370
+ package_id: string;
371
+ currency?: string;
372
+ }): Promise<any>;
373
+ }
374
+ declare class PicaScoreResource extends BaseResource {
375
+ get(): Promise<PicaScore>;
376
+ }
377
+ interface PresignedUploadResult {
378
+ uploadUrl: string;
379
+ uploadId: string;
380
+ key: string;
381
+ bucket: string;
382
+ expiresAt?: string;
383
+ metadata: Record<string, unknown>;
384
+ }
385
+ interface CompleteUploadResult {
386
+ uploadId: string;
387
+ audioFileId: string;
388
+ s3Key: string;
389
+ s3Bucket: string;
390
+ fileName: string;
391
+ fileSize: number;
392
+ status: string;
393
+ message: string;
394
+ }
395
+ interface IdentifyResult {
396
+ status?: "matched" | "no_match" | "failed";
397
+ alreadyIdentified?: boolean;
398
+ audioFileId?: string;
399
+ message?: string;
400
+ match?: {
401
+ title?: string;
402
+ artist?: string;
403
+ album?: string;
404
+ isrc?: string;
405
+ label?: string;
406
+ release_date?: string;
407
+ confidence: number;
408
+ };
409
+ }
410
+ declare class AudioFilesResource extends BaseResource {
411
+ list(params?: {
412
+ work_id?: string;
413
+ file_type?: string;
414
+ unprocessed?: boolean;
415
+ limit?: number;
416
+ }): Promise<AudioFile[]>;
417
+ get(id: string): Promise<AudioFile>;
418
+ analyze(id: string, options?: {
419
+ forceReAnalyze?: boolean;
420
+ enableAudio?: boolean;
421
+ enableLyrics?: boolean;
422
+ }): Promise<{
423
+ success: boolean;
424
+ message: string;
425
+ features?: Record<string, unknown>;
426
+ }>;
427
+ getStatus(id: string): Promise<AudioAnalysisStatus>;
428
+ presignedUpload(params: {
429
+ filename: string;
430
+ contentType: string;
431
+ fileSize: number;
432
+ workId?: string;
433
+ title?: string;
434
+ fileType?: string;
435
+ }): Promise<PresignedUploadResult>;
436
+ completeUpload(params: {
437
+ uploadId: string;
438
+ key: string;
439
+ bucket: string;
440
+ metadata: {
441
+ filename: string;
442
+ contentType: string;
443
+ fileSize: number;
444
+ workId?: string;
445
+ title?: string;
446
+ fileType?: string;
447
+ stemLabel?: string;
448
+ versionLabel?: string;
449
+ recordingId?: string;
450
+ classification?: string;
451
+ };
452
+ }): Promise<CompleteUploadResult>;
453
+ identify(id: string, options?: {
454
+ force?: boolean;
455
+ }): Promise<IdentifyResult>;
456
+ }
457
+ declare class MultimediaResource extends BaseResource {
458
+ search(params?: {
459
+ query?: string;
460
+ content_type?: string;
461
+ classification?: string;
462
+ is_published?: boolean;
463
+ work_id?: string;
464
+ person_id?: string;
465
+ limit?: number;
466
+ offset?: number;
467
+ }): Promise<{
468
+ data: MultimediaItem[];
469
+ count: number;
470
+ }>;
471
+ create(data: Partial<MultimediaItem>): Promise<MultimediaItem>;
472
+ importFromUrl(params: {
473
+ url: string;
474
+ title?: string;
475
+ source?: string;
476
+ work_id?: string;
477
+ }): Promise<MultimediaItem>;
478
+ linkYoutube(params: {
479
+ youtube_video_id: string;
480
+ title: string;
481
+ classification?: string;
482
+ work_id?: string;
483
+ work_relationship_type?: string;
484
+ }): Promise<MultimediaItem>;
485
+ linkWork(id: string, workId: string, relationshipType: string, notes?: string): Promise<Record<string, unknown>>;
486
+ }
487
+ declare class AgreementsResource extends BaseResource {
488
+ list(params?: {
489
+ query?: string;
490
+ agreement_type?: string;
491
+ status?: string;
492
+ party_name?: string;
493
+ includeWorkCounts?: boolean;
494
+ limit?: number;
495
+ offset?: number;
496
+ }): Promise<Agreement[]>;
497
+ get(id: string): Promise<{
498
+ agreement: Agreement;
499
+ signatureStatus: unknown;
500
+ linkedWorks: unknown[];
501
+ }>;
502
+ create(data: Partial<Agreement>): Promise<Agreement>;
503
+ update(id: string, updates: Partial<Agreement>): Promise<Agreement>;
504
+ delete(id: string): Promise<void>;
505
+ getWorks(id: string): Promise<AgreementWorkLink[]>;
506
+ linkWork(id: string, data: {
507
+ work_id: string;
508
+ royalty_split_percentage?: number;
509
+ notes?: string;
510
+ }): Promise<AgreementWorkLink>;
511
+ }
512
+ declare class WorkspaceResource extends BaseResource {
513
+ getContext(): Promise<{
514
+ organisation: {
515
+ name: string;
516
+ plan: string | null;
517
+ };
518
+ catalog: Record<string, unknown>;
519
+ health: Record<string, unknown> | null;
520
+ priorities: string[];
521
+ }>;
522
+ getRecentEvents(limit?: number): Promise<{
523
+ events: Array<{
524
+ id: string;
525
+ event: string;
526
+ status: string;
527
+ timestamp: string;
528
+ }>;
529
+ }>;
530
+ }
531
+ declare class MemoryResource extends BaseResource {
532
+ list(): Promise<any[]>;
533
+ search(query: string): Promise<any[]>;
534
+ save(params: {
535
+ key: string;
536
+ content: string;
537
+ scope?: string;
538
+ type?: string;
539
+ }): Promise<any>;
540
+ delete(id: string): Promise<void>;
541
+ }
542
+ declare class NotesResource extends BaseResource {
543
+ list(params?: {
544
+ q?: string;
545
+ work?: string;
546
+ person?: string;
547
+ limit?: number;
548
+ }): Promise<any[]>;
549
+ get(id: string): Promise<any>;
550
+ create(content: string, metadata?: {
551
+ work_ids?: string[];
552
+ people_ids?: string[];
553
+ }): Promise<any>;
554
+ delete(id: string): Promise<void>;
555
+ }
556
+ declare class TeamResource extends BaseResource {
557
+ list(): Promise<any>;
558
+ get(id: string): Promise<any>;
559
+ invite(data: Record<string, any>): Promise<any>;
560
+ update(id: string, data: Record<string, any>): Promise<any>;
561
+ remove(id: string): Promise<any>;
562
+ }
563
+ declare class RecordingsResource extends BaseResource {
564
+ list(params?: {
565
+ limit?: number;
566
+ }): Promise<Recording[]>;
567
+ /**
568
+ * Search recordings. The recordings API doesn't support text search,
569
+ * so we fetch all and filter client-side for text queries.
570
+ */
571
+ search(params: {
572
+ query?: string;
573
+ limit?: number;
574
+ offset?: number;
575
+ }): Promise<PaginatedResult<Recording>>;
576
+ get(id: string): Promise<Recording>;
577
+ create(data: Partial<Recording>): Promise<Recording>;
578
+ update(id: string, updates: Partial<Recording>): Promise<Recording>;
579
+ delete(id: string): Promise<void>;
580
+ getByWork(workId: string): Promise<Recording[]>;
581
+ prefixLookup(isrc: string): Promise<Record<string, unknown> | null>;
582
+ }
583
+ declare class EnrichmentResource extends BaseResource {
584
+ enrichWork(workId: string): Promise<any>;
585
+ enrichPerson(personId: string): Promise<any>;
586
+ getWorkEnrichmentStatus(workId: string): Promise<any>;
587
+ getCandidates(): Promise<any>;
588
+ enrichWorkMlc(workId: string): Promise<any>;
589
+ enrichWorkMusicBrainz(workId: string): Promise<any>;
590
+ enrichWorkDiscogs(workId: string): Promise<any>;
591
+ enrichWorkSpotify(workId: string): Promise<any>;
592
+ enrichWorkYouTube(workId: string): Promise<any>;
593
+ }
594
+ declare class RegistrationResource extends BaseResource {
595
+ getCoverage(): Promise<any>;
596
+ getWorkCascadeStatus(workId: string): Promise<any>;
597
+ }
598
+ declare class HealthResource extends BaseResource {
599
+ getWorksHealth(): Promise<any>;
600
+ getLowScoreWorks(): Promise<any>;
601
+ getWorkCompleteness(workId: string): Promise<any>;
602
+ }
603
+ declare class DashboardResource extends BaseResource {
604
+ discoveries(params?: {
605
+ unread?: boolean;
606
+ limit?: number;
607
+ }): Promise<any>;
608
+ pendingDiscoveries(): Promise<any>;
609
+ reviewDiscovery(discoveryId: string, status: string): Promise<any>;
610
+ attentionItems(params?: {
611
+ door?: string;
612
+ limit?: number;
613
+ }): Promise<any>;
614
+ briefing(): Promise<any>;
615
+ pulse(): Promise<any>;
616
+ }
617
+ declare class IntegrationsResource extends BaseResource {
618
+ oauthConnections(): Promise<any>;
619
+ platforms(): Promise<any>;
620
+ }
621
+ declare class SettingsResource extends BaseResource {
622
+ creditsHistory(params?: {
623
+ type?: string;
624
+ limit?: number;
625
+ }): Promise<any>;
626
+ storageConfig(): Promise<any>;
627
+ orgProfile(): Promise<any>;
628
+ userProfile(): Promise<any>;
629
+ }
630
+ declare class CalendarResource extends BaseResource {
631
+ getEvents(params: {
632
+ startDate: string;
633
+ endDate: string;
634
+ types?: string[];
635
+ workId?: string;
636
+ search?: string;
637
+ }): Promise<any>;
638
+ }
639
+ declare class NotificationsResource extends BaseResource {
640
+ list(): Promise<any>;
641
+ markRead(ids: string[]): Promise<any>;
642
+ sendToPerson(params: {
643
+ person_id: string;
644
+ message: string;
645
+ work_id?: string;
646
+ notification_type?: string;
647
+ }): Promise<any>;
648
+ }
649
+ declare class AnalyticsResource extends BaseResource {
650
+ carbonSummary(): Promise<any>;
651
+ carbonLive(): Promise<any>;
652
+ provenanceStats(): Promise<any>;
653
+ provenanceWork(workId: string): Promise<any>;
654
+ provenanceCertificate(workId: string): Promise<any>;
655
+ catalogDiligence(): Promise<any>;
656
+ }
657
+ declare class BulkResource extends BaseResource {
658
+ updateWorks(workIds: string[], updates: Record<string, any>): Promise<any>;
659
+ updatePeopleRoles(personIds: string[], roles: string[]): Promise<any>;
660
+ }
661
+ declare class ExportResource extends BaseResource {
662
+ catalogCsv(params?: {
663
+ format?: string;
664
+ }): Promise<any>;
665
+ songRegistration(): Promise<any>;
666
+ industryReady(): Promise<any>;
667
+ catalogAssetReport(params: {
668
+ sections: {
669
+ ownership: true;
670
+ valuation?: boolean;
671
+ assets?: boolean;
672
+ agreements?: boolean;
673
+ intelligence?: boolean;
674
+ audio?: boolean;
675
+ };
676
+ attestation: {
677
+ signer_name: string;
678
+ declaration_accepted: boolean;
679
+ };
680
+ }): Promise<any>;
681
+ aiConsent(): Promise<any>;
682
+ }
683
+ declare class DuplicatesResource extends BaseResource {
684
+ findDuplicates(entityType: "works" | "people"): Promise<any>;
685
+ merge(entityType: "work" | "person", winnerId: string, loserIds: string[]): Promise<any>;
686
+ }
687
+ declare class EntityContextResource extends BaseResource {
688
+ getWorkFull(workId: string): Promise<Record<string, unknown>>;
689
+ getPersonFull(personId: string): Promise<Record<string, unknown>>;
690
+ }
691
+ declare class ComparisonsResource extends BaseResource {
692
+ enrichmentCompare(params: {
693
+ entityType: "work" | "person";
694
+ entityId: string;
695
+ }): Promise<Record<string, unknown>>;
696
+ registrationsCompare(workId: string): Promise<Record<string, unknown>>;
697
+ }
698
+ declare class SendResource extends BaseResource {
699
+ send(params: Record<string, unknown>): Promise<Record<string, unknown>>;
700
+ list(params?: {
701
+ type?: string;
702
+ status?: string;
703
+ personId?: string;
704
+ workId?: string;
705
+ limit?: number;
706
+ offset?: number;
707
+ }): Promise<{
708
+ items: Array<Record<string, unknown>>;
709
+ total: number;
710
+ }>;
711
+ listPending(): Promise<Array<Record<string, unknown>>>;
712
+ resend(id: string): Promise<Record<string, unknown>>;
713
+ }
714
+ declare class AssetsResource extends BaseResource {
715
+ list(params?: {
716
+ category?: string;
717
+ limit?: number;
718
+ }): Promise<any>;
719
+ get(id: string): Promise<any>;
720
+ create(data: Record<string, any>): Promise<any>;
721
+ update(id: string, data: Record<string, any>): Promise<any>;
722
+ delete(id: string): Promise<any>;
723
+ stats(): Promise<any>;
724
+ valuations(id: string): Promise<any>;
725
+ exportAll(): Promise<any>;
726
+ marketCheck(id: string): Promise<any>;
727
+ }
728
+ interface GenericPresignedResult {
729
+ uploadUrl: string;
730
+ uploadId: string;
731
+ key: string;
732
+ bucket: string;
733
+ storageCategory: "audio" | "media" | "documents";
734
+ expiresAt?: string;
735
+ metadata: Record<string, unknown>;
736
+ }
737
+ interface GenericCompleteResult {
738
+ uploadId: string;
739
+ recordId: string;
740
+ recordType: string;
741
+ key: string;
742
+ bucket: string;
743
+ storageCategory: string;
744
+ }
745
+ declare class StorageResource extends BaseResource {
746
+ presignedUpload(params: {
747
+ filename: string;
748
+ contentType: string;
749
+ fileSize: number;
750
+ storageCategory?: "audio" | "media" | "documents";
751
+ }): Promise<GenericPresignedResult>;
752
+ completeUpload(params: {
753
+ uploadId: string;
754
+ key: string;
755
+ bucket: string;
756
+ metadata: {
757
+ filename: string;
758
+ contentType: string;
759
+ fileSize: number;
760
+ storageCategory: "audio" | "media" | "documents";
761
+ title?: string;
762
+ workId?: string;
763
+ classification?: string;
764
+ collectionId?: string;
765
+ documentCategory?: string;
766
+ documentTitle?: string;
767
+ linkedToType?: string;
768
+ linkedToId?: string;
769
+ };
770
+ }): Promise<GenericCompleteResult>;
771
+ }
772
+ type ImportDomain = "works" | "people" | "recordings" | "documents" | "enquiries" | "royalties";
773
+ interface ImportAnalysis {
774
+ parsed: {
775
+ headers: string[];
776
+ rows: Record<string, string>[];
777
+ totalRows: number;
778
+ };
779
+ analysis: {
780
+ mappings: Record<string, {
781
+ targetField: string;
782
+ transform?: string;
783
+ aiConfidence?: number;
784
+ required?: boolean;
785
+ }>;
786
+ suggestions: string[];
787
+ };
788
+ }
789
+ interface ImportValidation {
790
+ valid: boolean;
791
+ errors: Array<{
792
+ row: number;
793
+ field: string;
794
+ message: string;
795
+ severity: "error" | "warning";
796
+ }>;
797
+ validRowCount: number;
798
+ invalidRowCount: number;
799
+ totalRowCount: number;
800
+ errorsByType: Record<string, number>;
801
+ }
802
+ interface ImportResult {
803
+ importedCount: number;
804
+ updatedCount: number;
805
+ skippedCount: number;
806
+ createdRecords: Array<{
807
+ id: string;
808
+ title?: string;
809
+ }>;
810
+ errors: Array<{
811
+ row: number;
812
+ field: string;
813
+ message: string;
814
+ severity: string;
815
+ }>;
816
+ summary: string;
817
+ dryRun: boolean;
818
+ }
819
+ declare class ImportResource extends BaseResource {
820
+ analyze(params: {
821
+ fileContent: string;
822
+ domain: ImportDomain;
823
+ }): Promise<ImportAnalysis>;
824
+ suggestMapping(params: {
825
+ domain: ImportDomain;
826
+ headers: string[];
827
+ sampleRows: Record<string, string>[];
828
+ }): Promise<{
829
+ mappings: Array<{
830
+ csvColumn: string;
831
+ targetField: string;
832
+ transformType: string;
833
+ confidence: number;
834
+ required: boolean;
835
+ }>;
836
+ unmappedCsvColumns: string[];
837
+ missingRequiredFields: string[];
838
+ aiSuggestions: string[];
839
+ }>;
840
+ validate(params: {
841
+ domain: ImportDomain;
842
+ fileContent: string;
843
+ mapping: Array<{
844
+ csvColumn: string;
845
+ targetField: string;
846
+ transformType?: string;
847
+ }>;
848
+ }): Promise<ImportValidation>;
849
+ execute(params: {
850
+ domain: ImportDomain;
851
+ fileContent: string;
852
+ mapping: Array<{
853
+ csvColumn: string;
854
+ targetField: string;
855
+ transformType?: string;
856
+ }>;
857
+ options: {
858
+ dryRun?: boolean;
859
+ skipInvalidRows?: boolean;
860
+ batchSize?: number;
861
+ };
862
+ }): Promise<ImportResult>;
863
+ getFields(domain: ImportDomain): Promise<Array<{
864
+ name: string;
865
+ label: string;
866
+ description?: string;
867
+ required: boolean;
868
+ type: string;
869
+ }>>;
870
+ streamingLinkPreview(url: string): Promise<{
871
+ tracks: Array<{
872
+ title: string;
873
+ artists: Array<{
874
+ name: string;
875
+ }>;
876
+ album?: string;
877
+ isrc?: string;
878
+ platform: string;
879
+ externalId: string;
880
+ externalUrl: string;
881
+ }>;
882
+ duplicates: Array<{
883
+ track: {
884
+ title: string;
885
+ externalId: string;
886
+ };
887
+ existingWorkId: string;
888
+ existingTitle: string;
889
+ matchType: string;
890
+ }>;
891
+ newTracks: Array<{
892
+ title: string;
893
+ artists: Array<{
894
+ name: string;
895
+ }>;
896
+ isrc?: string;
897
+ externalId: string;
898
+ }>;
899
+ source: {
900
+ platform: string;
901
+ type: string;
902
+ name?: string;
903
+ url: string;
904
+ };
905
+ }>;
906
+ streamingLinkImport(url: string, selectedTrackIds?: string[]): Promise<{
907
+ worksCreated: number;
908
+ recordingsCreated: number;
909
+ peopleCreated: number;
910
+ creditsCreated: number;
911
+ multimediaLinked: number;
912
+ duplicatesSkipped: number;
913
+ workIds: string[];
914
+ }>;
915
+ getTemplate(domain: ImportDomain): Promise<string>;
916
+ }
917
+ declare class DocumentsResource extends BaseResource {
918
+ analyse(id: string): Promise<Record<string, unknown>>;
919
+ }
920
+ interface CollaboratorInvite {
921
+ id: string;
922
+ work_id: string;
923
+ person_id?: string;
924
+ email: string;
925
+ name: string;
926
+ status: "pending" | "accepted" | "expired";
927
+ token?: string;
928
+ created_at: string;
929
+ updated_at: string;
930
+ }
931
+ declare class CollaboratorsResource extends BaseResource {
932
+ invite(params: {
933
+ workId: string;
934
+ personData: {
935
+ name: string;
936
+ email: string;
937
+ role?: string;
938
+ };
939
+ invitedBy: string;
940
+ creditData: {
941
+ credit_type: string;
942
+ percentage_split?: number;
943
+ role_description?: string;
944
+ };
945
+ }): Promise<Record<string, unknown>>;
946
+ listInvites(params?: {
947
+ status?: "pending" | "accepted" | "expired";
948
+ workId?: string;
949
+ limit?: number;
950
+ }): Promise<CollaboratorInvite[]>;
951
+ resendInvite(inviteId: string): Promise<Record<string, unknown>>;
952
+ }
953
+ interface DirectorySettings {
954
+ organisation_id: string;
955
+ opted_in: boolean;
956
+ show_splits: boolean;
957
+ show_publishers: boolean;
958
+ show_agreements: boolean;
959
+ show_audio_preview: boolean;
960
+ show_stems: boolean;
961
+ contact_enabled: boolean;
962
+ }
963
+ declare class DirectoryResource extends BaseResource {
964
+ getSettings(): Promise<{
965
+ settings: DirectorySettings;
966
+ eligible_work_count: number;
967
+ }>;
968
+ updateSettings(updates: Partial<DirectorySettings>): Promise<DirectorySettings>;
969
+ }
970
+ declare class ProjectsResource extends BaseResource {
971
+ list(params?: {
972
+ limit?: number;
973
+ }): Promise<any>;
974
+ get(id: string): Promise<any>;
975
+ create(data: Record<string, any>): Promise<any>;
976
+ update(id: string, data: Record<string, any>): Promise<any>;
977
+ delete(id: string): Promise<any>;
978
+ }
979
+ declare class SplitSheetsResource extends BaseResource {
980
+ listForWork(workId: string): Promise<any>;
981
+ generate(workId: string): Promise<any>;
982
+ get(workId: string, splitSheetId: string): Promise<any>;
983
+ }
984
+ declare class RecordingSplitsResource extends BaseResource {
985
+ list(recordingId: string): Promise<any>;
986
+ create(recordingId: string, data: Record<string, any>): Promise<any>;
987
+ update(recordingId: string, splitId: string, data: Record<string, any>): Promise<any>;
988
+ delete(recordingId: string, splitId: string): Promise<any>;
989
+ verify(recordingId: string, splitId: string): Promise<any>;
990
+ }
991
+ declare class ReleasesResource extends BaseResource {
992
+ list(params?: {
993
+ limit?: number;
994
+ }): Promise<any>;
995
+ get(id: string): Promise<any>;
996
+ create(data: Record<string, any>): Promise<any>;
997
+ update(id: string, data: Record<string, any>): Promise<any>;
998
+ delete(id: string): Promise<any>;
999
+ }
1000
+ declare class SessionsResource extends BaseResource {
1001
+ list(params?: {
1002
+ limit?: number;
1003
+ }): Promise<any>;
1004
+ get(id: string): Promise<any>;
1005
+ create(data: Record<string, any>): Promise<any>;
1006
+ update(id: string, data: Record<string, any>): Promise<any>;
1007
+ getTypes(): Promise<any>;
1008
+ }
1009
+ declare class AgreementTemplatesResource extends BaseResource {
1010
+ list(): Promise<any[]>;
1011
+ get(id: string): Promise<any>;
1012
+ create(data: Record<string, any>): Promise<any>;
1013
+ update(id: string, data: Record<string, any>): Promise<any>;
1014
+ delete(id: string): Promise<void>;
1015
+ render(id: string, data: Record<string, any>): Promise<any>;
1016
+ duplicate(id: string): Promise<any>;
1017
+ setDefault(id: string): Promise<any>;
1018
+ }
1019
+ declare class ProducerAgreementsResource extends BaseResource {
1020
+ list(): Promise<any[]>;
1021
+ get(id: string): Promise<any>;
1022
+ create(data: Record<string, any>): Promise<any>;
1023
+ update(id: string, data: Record<string, any>): Promise<any>;
1024
+ delete(id: string): Promise<void>;
1025
+ }
1026
+ declare class WorkForHireResource extends BaseResource {
1027
+ list(): Promise<any[]>;
1028
+ get(id: string): Promise<any>;
1029
+ create(data: Record<string, any>): Promise<any>;
1030
+ update(id: string, data: Record<string, any>): Promise<any>;
1031
+ delete(id: string): Promise<void>;
1032
+ }
1033
+ declare class RoyaltiesResource extends BaseResource {
1034
+ payments(params?: {
1035
+ source?: string;
1036
+ workId?: string;
1037
+ fromDate?: string;
1038
+ toDate?: string;
1039
+ limit?: number;
1040
+ offset?: number;
1041
+ }): Promise<any[]>;
1042
+ earnings(params?: {
1043
+ start_date?: string;
1044
+ end_date?: string;
1045
+ source?: string;
1046
+ limit?: number;
1047
+ offset?: number;
1048
+ }): Promise<any>;
1049
+ gaps(params?: {
1050
+ priority?: string;
1051
+ gapType?: string;
1052
+ workId?: string;
1053
+ limit?: number;
1054
+ }): Promise<any[]>;
1055
+ stats(): Promise<any>;
1056
+ }
1057
+ declare class StatementsResource extends BaseResource {
1058
+ history(params?: {
1059
+ source?: string;
1060
+ dateFrom?: string;
1061
+ dateTo?: string;
1062
+ search?: string;
1063
+ limit?: number;
1064
+ offset?: number;
1065
+ sort?: string;
1066
+ }): Promise<any>;
1067
+ get(batchId: string): Promise<any>;
1068
+ }
1069
+ declare class ShareLinksResource extends BaseResource {
1070
+ list(params?: {
1071
+ work_id?: string;
1072
+ }): Promise<any[]>;
1073
+ create(data: Record<string, any>): Promise<any>;
1074
+ }
1075
+ declare class DisputesResource extends BaseResource {
1076
+ list(params?: {
1077
+ status?: string;
1078
+ }): Promise<any>;
1079
+ }
1080
+ declare class ChainResource extends BaseResource {
1081
+ search(params: {
1082
+ q: string;
1083
+ limit?: number;
1084
+ expand_first?: boolean;
1085
+ }): Promise<any>;
1086
+ getById(type: string, id: string): Promise<any>;
1087
+ traverse(identifier: string): Promise<any>;
1088
+ }
1089
+ declare class TelegramResource extends BaseResource {
1090
+ getStatus(): Promise<any>;
1091
+ sendNotification(message: string): Promise<any>;
1092
+ getPreferences(): Promise<any>;
1093
+ }
1094
+ declare class ImportDocumentsResource extends BaseResource {
1095
+ list(options?: {
1096
+ source?: string;
1097
+ period?: string;
1098
+ document_type?: string;
1099
+ limit?: number;
1100
+ }): Promise<any[]>;
1101
+ get(id: string): Promise<any>;
1102
+ ingest(content: string): Promise<any>;
1103
+ }
1104
+ export declare class PicaClient {
1105
+ works: WorksResource;
1106
+ people: PeopleResource;
1107
+ recordings: RecordingsResource;
1108
+ licensing: LicensingResource;
1109
+ credits: CreditsResource;
1110
+ creditsBalance: CreditsBalanceResource;
1111
+ picaScore: PicaScoreResource;
1112
+ audioFiles: AudioFilesResource;
1113
+ multimedia: MultimediaResource;
1114
+ agreements: AgreementsResource;
1115
+ workspace: WorkspaceResource;
1116
+ memory: MemoryResource;
1117
+ enrichment: EnrichmentResource;
1118
+ registration: RegistrationResource;
1119
+ health: HealthResource;
1120
+ bulk: BulkResource;
1121
+ exports: ExportResource;
1122
+ duplicates: DuplicatesResource;
1123
+ collaborators: CollaboratorsResource;
1124
+ entityContext: EntityContextResource;
1125
+ comparisons: ComparisonsResource;
1126
+ send: SendResource;
1127
+ imports: ImportResource;
1128
+ storage: StorageResource;
1129
+ documents: DocumentsResource;
1130
+ analytics: AnalyticsResource;
1131
+ notifications: NotificationsResource;
1132
+ calendar: CalendarResource;
1133
+ dashboard: DashboardResource;
1134
+ integrations: IntegrationsResource;
1135
+ settings: SettingsResource;
1136
+ directory: DirectoryResource;
1137
+ importDocuments: ImportDocumentsResource;
1138
+ sessions: SessionsResource;
1139
+ assets: AssetsResource;
1140
+ notes: NotesResource;
1141
+ team: TeamResource;
1142
+ projects: ProjectsResource;
1143
+ releases: ReleasesResource;
1144
+ splitSheets: SplitSheetsResource;
1145
+ recordingSplits: RecordingSplitsResource;
1146
+ agreementTemplates: AgreementTemplatesResource;
1147
+ producerAgreements: ProducerAgreementsResource;
1148
+ workForHire: WorkForHireResource;
1149
+ royalties: RoyaltiesResource;
1150
+ statements: StatementsResource;
1151
+ shareLinks: ShareLinksResource;
1152
+ disputes: DisputesResource;
1153
+ chain: ChainResource;
1154
+ telegram: TelegramResource;
1155
+ /**
1156
+ * Get accurate catalog stats via SQL counts (no pagination limits)
1157
+ */
1158
+ catalogStats(): Promise<CatalogStats>;
1159
+ constructor(config: PicaClientConfig);
1160
+ }
1161
+ export type { Work, Person, Recording, PaginatedResult, PicaClientConfig, SyncSearchParams, SyncTrack, SyncSearchResult, LicenseEnquiryInput, LicenseEnquiry, WorkCredit, WorkCreditsInput, PicaScore, PicaScorePillar, AudioFile, AudioAnalysisStatus, PresignedUploadResult, CompleteUploadResult, IdentifyResult, MultimediaItem, Agreement, AgreementWorkLink, };
1162
+ //# sourceMappingURL=pica-sdk.d.ts.map