@shadowob/flash-types 1.1.3

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.
package/dist/card.ts ADDED
@@ -0,0 +1,529 @@
1
+ // ═══════════════════════════════════════════════════════════════
2
+ // @shadowob/flash-types — Card Kinds & Structured Meta
3
+ // ═══════════════════════════════════════════════════════════════
4
+ import type { tags } from 'typia';
5
+ /** Card kind */
6
+ export type CardKind = 'quote' // highlighted quote
7
+ | 'summary' // summary
8
+ | 'argument' // argument / claim
9
+ | 'data' // data (numbers, statistics)
10
+ | 'table' // table
11
+ | 'image' // image
12
+ | 'code' // code snippet
13
+ | 'chart' // chart description
14
+ | 'idea' // idea / concept
15
+ | 'text' // general text
16
+ | 'audio' // audio summary
17
+ | 'video' // video summary
18
+ | 'keypoint' // key point / highlight
19
+ | 'definition' // definition / concept
20
+ | 'example' // case study / example
21
+ | 'reference' // citation / source
22
+ | 'inspiration' // AI-generated inspiration
23
+ | 'timeline' // timeline
24
+ | 'comparison' // comparison
25
+ | 'process' // process / flow
26
+ | 'gif' // GIF / animated placeholder
27
+ | 'qrcode' // QR code
28
+ | 'person' // person profile card
29
+ | 'terminal' // terminal emulator
30
+ | 'lottie' // Lottie animation
31
+ | 'webpage' // webpage preview
32
+ | 'countdown' // countdown timer
33
+ | 'threed' // Three.js 3D scene
34
+ | 'live2d' // Live2D animation
35
+ | 'link' // link card
36
+ | 'file' // file card
37
+ | 'math' // math formula (KaTeX)
38
+ | 'todo' // to-do list
39
+ | 'position' // geographic location
40
+ | 'timestamp' // timestamp
41
+ | 'color' // color card
42
+ | 'event' // calendar event
43
+ | 'voice' // voice / audio memo
44
+ | 'comment' // discussion / annotation
45
+ | 'story' // narrative / story
46
+ | 'social' // social media post
47
+ | 'poker' // playing card
48
+ | 'tarot' // tarot card
49
+ | 'flash'; // flash card (full-effect glow)
50
+ export type CardPriority = 'high' | 'medium' | 'low';
51
+ // ── Structured Meta per CardKind ──
52
+ export interface DataCardMeta {
53
+ metrics: {
54
+ key: string;
55
+ value: string | number;
56
+ unit?: string;
57
+ change?: string;
58
+ changeDirection?: 'up' | 'down' | 'neutral';
59
+ }[];
60
+ period?: string;
61
+ benchmark?: string;
62
+ highlight?: string;
63
+ visualHint?: 'big-number' | 'kpi-grid' | 'comparison' | 'trend';
64
+ }
65
+ export interface ArgumentCardMeta {
66
+ claim: string;
67
+ evidence: {
68
+ type: 'statistic' | 'example' | 'expert' | 'trend' | 'analogy';
69
+ text: string;
70
+ source?: string;
71
+ }[];
72
+ counterpoint?: string;
73
+ strength?: 'strong' | 'moderate' | 'weak';
74
+ logicType?: 'deductive' | 'inductive' | 'abductive';
75
+ }
76
+ export interface QuoteCardMeta {
77
+ text: string;
78
+ author?: string;
79
+ role?: string;
80
+ source?: string;
81
+ language?: 'zh' | 'en';
82
+ emphasis?: string[];
83
+ }
84
+ export interface DefinitionCardMeta {
85
+ term: string;
86
+ abbreviation?: string;
87
+ fullName?: string;
88
+ definition: string;
89
+ category?: string;
90
+ relatedTerms?: string[];
91
+ example?: string;
92
+ formula?: string;
93
+ }
94
+ export interface ChartCardMeta {
95
+ chartType: 'barChart' | 'lineChart' | 'areaChart' | 'pieChart' | 'bar' | 'line' | 'pie' | 'donut' | 'area' | 'radar' | 'scatter';
96
+ categories?: string[];
97
+ series: {
98
+ name: string;
99
+ data: number[];
100
+ color?: string;
101
+ }[];
102
+ labels?: string[];
103
+ unit?: string;
104
+ xAxisLabel?: string;
105
+ yAxisLabel?: string;
106
+ dataSource?: string;
107
+ insight?: string;
108
+ chartTitle?: string;
109
+ }
110
+ export interface TableCardMeta {
111
+ columns: {
112
+ key: string;
113
+ label: string;
114
+ type?: 'text' | 'number' | 'percent' | 'currency' | 'date';
115
+ unit?: string;
116
+ }[];
117
+ rows: Record<string, string | number>[];
118
+ sortBy?: string;
119
+ sortDirection?: 'asc' | 'desc';
120
+ highlightRow?: number;
121
+ caption?: string;
122
+ headers?: string[];
123
+ }
124
+ export interface CodeCardMeta {
125
+ language: string;
126
+ code: string;
127
+ filename?: string;
128
+ highlight?: number[];
129
+ description?: string;
130
+ }
131
+ export interface KeypointCardMeta {
132
+ points: {
133
+ label: string;
134
+ detail: string;
135
+ icon?: string;
136
+ }[];
137
+ context?: string;
138
+ layout?: 'horizontal' | 'vertical' | 'grid';
139
+ }
140
+ export interface ExampleCardMeta {
141
+ subject: string;
142
+ scenario: string;
143
+ challenge?: string;
144
+ approach?: string;
145
+ results?: {
146
+ metric: string;
147
+ value: string;
148
+ context?: string;
149
+ }[];
150
+ takeaway?: string;
151
+ industry?: string;
152
+ }
153
+ export interface SummaryCardMeta {
154
+ body: string;
155
+ }
156
+ export interface ReferenceCardMeta {
157
+ refTitle: string;
158
+ authors?: string[];
159
+ publishDate?: string;
160
+ url?: string & tags.Format<'uri'>;
161
+ refType?: 'report' | 'paper' | 'book' | 'article' | 'website';
162
+ credibility?: 'high' | 'medium' | 'low';
163
+ citedIn?: string[];
164
+ }
165
+ export interface InspirationCardMeta {
166
+ body?: string;
167
+ ideaType?: 'concept' | 'improvement' | 'alternative' | 'expansion';
168
+ impact?: string;
169
+ difficulty?: 'easy' | 'medium' | 'hard';
170
+ }
171
+ export interface TimelineCardMeta {
172
+ events: {
173
+ date: string;
174
+ title: string;
175
+ detail: string;
176
+ significance?: 'high' | 'medium' | 'low';
177
+ }[];
178
+ span?: string;
179
+ direction?: 'horizontal' | 'vertical';
180
+ }
181
+ export interface ComparisonCardMeta {
182
+ subjects: string[];
183
+ dimensions: {
184
+ label: string;
185
+ values: string[];
186
+ winner?: number;
187
+ }[];
188
+ conclusion?: string;
189
+ visualHint?: 'versus' | 'matrix' | 'radar';
190
+ }
191
+ export interface ProcessCardMeta {
192
+ steps: {
193
+ order: number;
194
+ label: string;
195
+ detail: string;
196
+ icon?: string;
197
+ }[];
198
+ isLinear?: boolean;
199
+ visualHint?: 'arrow-flow' | 'numbered-list' | 'swimlane';
200
+ }
201
+ export interface ImageCardMeta {
202
+ src?: string;
203
+ ktx2?: string;
204
+ basis?: string;
205
+ fallbackSrc?: string;
206
+ objectFit?: 'cover' | 'contain' | 'fill';
207
+ compressed?: {
208
+ ktx2?: string;
209
+ basis?: string;
210
+ fallback?: string;
211
+ width?: number;
212
+ height?: number;
213
+ colorSpace?: 'srgb' | 'linear';
214
+ };
215
+ alt?: string;
216
+ caption?: string;
217
+ width?: number;
218
+ height?: number;
219
+ }
220
+ export interface GifCardMeta {
221
+ src?: string;
222
+ alt?: string;
223
+ caption?: string;
224
+ tags?: string[];
225
+ autoplay?: boolean;
226
+ preload?: boolean;
227
+ }
228
+ export interface QrcodeCardMeta {
229
+ url: string & tags.Format<'uri'>;
230
+ label?: string;
231
+ description?: string;
232
+ style?: 'light' | 'dark';
233
+ }
234
+ export interface PersonCardMeta {
235
+ name: string;
236
+ title?: string;
237
+ company?: string;
238
+ avatar?: string;
239
+ bio?: string;
240
+ tags?: string[];
241
+ contact?: {
242
+ type: 'email' | 'twitter' | 'linkedin' | 'github' | 'phone';
243
+ value: string;
244
+ }[];
245
+ }
246
+ export interface TerminalCardMeta {
247
+ shell?: string;
248
+ cwd?: string;
249
+ lines: {
250
+ type: 'cmd' | 'out' | 'err' | 'info';
251
+ text: string;
252
+ }[];
253
+ title?: string;
254
+ }
255
+ export interface LottieCardMeta {
256
+ animationName: string;
257
+ src?: string;
258
+ description?: string;
259
+ loop?: boolean;
260
+ palette?: string[];
261
+ autoplay?: boolean;
262
+ preload?: boolean;
263
+ }
264
+ export interface WebpageCardMeta {
265
+ url: string & tags.Format<'uri'>;
266
+ title?: string;
267
+ description?: string;
268
+ favicon?: string;
269
+ screenshot?: string;
270
+ }
271
+ export interface CountdownCardMeta {
272
+ targetDate: string;
273
+ label?: string;
274
+ timezone?: string;
275
+ style?: 'classic' | 'minimal' | 'neon';
276
+ precision?: 'days' | 'hours' | 'minutes' | 'seconds';
277
+ }
278
+ export interface Live2DCardMeta {
279
+ modelUrl: string;
280
+ name?: string;
281
+ background?: string;
282
+ autoMotion?: boolean;
283
+ autoplay?: boolean;
284
+ preload?: boolean;
285
+ }
286
+ export interface ThreeDCardMeta {
287
+ scene: 'cube' | 'torus' | 'particles' | 'dna' | 'earth' | 'galaxy' | string;
288
+ color?: string;
289
+ color2?: string;
290
+ ktx2?: string;
291
+ basis?: string;
292
+ fallbackSrc?: string;
293
+ compressed?: {
294
+ ktx2?: string;
295
+ basis?: string;
296
+ fallback?: string;
297
+ width?: number;
298
+ height?: number;
299
+ colorSpace?: 'srgb' | 'linear';
300
+ };
301
+ description?: string;
302
+ wireframe?: boolean;
303
+ autoplay?: boolean;
304
+ preload?: boolean;
305
+ }
306
+ export interface LinkCardMeta {
307
+ url: string & tags.Format<'uri'>;
308
+ title?: string;
309
+ description?: string;
310
+ favicon?: string;
311
+ source?: string;
312
+ image?: string;
313
+ tags?: string[];
314
+ }
315
+ export interface FileCardMeta {
316
+ filename: string;
317
+ size?: string;
318
+ type?: string;
319
+ modified?: string;
320
+ path?: string;
321
+ description?: string;
322
+ url?: string;
323
+ tags?: string[];
324
+ }
325
+ export interface MathCardMeta {
326
+ formula: string;
327
+ steps?: {
328
+ label?: string;
329
+ formula: string;
330
+ }[];
331
+ description?: string;
332
+ category?: string;
333
+ name?: string;
334
+ }
335
+ export interface TodoCardMeta {
336
+ items: {
337
+ id?: string;
338
+ text: string;
339
+ done?: boolean;
340
+ priority?: 'high' | 'medium' | 'low';
341
+ tag?: string;
342
+ }[];
343
+ title?: string;
344
+ progress?: string;
345
+ }
346
+ export interface PositionCardMeta {
347
+ lat: number;
348
+ lng: number;
349
+ address?: string;
350
+ name?: string;
351
+ zoom?: number;
352
+ provider?: 'amap' | 'google' | 'openstreetmap';
353
+ note?: string;
354
+ }
355
+ export interface TimestampCardMeta {
356
+ datetime: string;
357
+ timezone?: string;
358
+ label?: string;
359
+ precision?: 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second';
360
+ showLunar?: boolean;
361
+ note?: string;
362
+ }
363
+ export interface ColorCardMeta {
364
+ hex: string;
365
+ name?: string;
366
+ rgb?: {
367
+ r: number;
368
+ g: number;
369
+ b: number;
370
+ };
371
+ hsl?: {
372
+ h: number;
373
+ s: number;
374
+ l: number;
375
+ };
376
+ palette?: {
377
+ hex: string;
378
+ name?: string;
379
+ role?: string;
380
+ }[];
381
+ usage?: string;
382
+ system?: string;
383
+ }
384
+ export interface EventCardMeta {
385
+ title: string;
386
+ startAt: string;
387
+ endAt?: string;
388
+ location?: string;
389
+ attendees?: {
390
+ name: string;
391
+ avatar?: string;
392
+ status?: 'accepted' | 'declined' | 'pending';
393
+ }[];
394
+ recurrence?: 'daily' | 'weekly' | 'monthly' | 'yearly' | 'custom';
395
+ description?: string;
396
+ color?: string;
397
+ allDay?: boolean;
398
+ }
399
+ export interface VoiceCardMeta {
400
+ src?: string;
401
+ duration?: number;
402
+ transcript?: string;
403
+ summary?: string;
404
+ recordedAt?: string;
405
+ tags?: string[];
406
+ waveform?: number[];
407
+ }
408
+ export interface CommentCardMeta {
409
+ content: string;
410
+ author?: {
411
+ name: string;
412
+ avatar?: string;
413
+ };
414
+ createdAt?: string;
415
+ targetCardId?: string;
416
+ replies?: {
417
+ author: string;
418
+ content: string;
419
+ createdAt?: string;
420
+ }[];
421
+ reactions?: {
422
+ emoji: string;
423
+ count: number;
424
+ }[];
425
+ resolved?: boolean;
426
+ }
427
+ export interface StoryCardMeta {
428
+ title: string;
429
+ subtitle?: string;
430
+ body: string;
431
+ author?: string;
432
+ cover?: string;
433
+ readingTime?: number;
434
+ chapters?: {
435
+ title: string;
436
+ content: string;
437
+ }[];
438
+ tags?: string[];
439
+ }
440
+ export interface SocialCardMeta {
441
+ platform: 'twitter' | 'weibo' | 'linkedin' | 'instagram' | 'tiktok' | 'youtube' | 'other';
442
+ author: {
443
+ name: string;
444
+ handle?: string;
445
+ avatar?: string;
446
+ verified?: boolean;
447
+ };
448
+ content: string;
449
+ postedAt?: string;
450
+ media?: {
451
+ type: 'image' | 'video';
452
+ url: string;
453
+ }[];
454
+ stats?: {
455
+ likes?: number;
456
+ reposts?: number;
457
+ comments?: number;
458
+ views?: number;
459
+ };
460
+ url?: string;
461
+ hashtags?: string[];
462
+ }
463
+ export interface PokerCardMeta {
464
+ rank: 'A' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | 'J' | 'Q' | 'K';
465
+ suit: 'spades' | 'hearts' | 'diamonds' | 'clubs';
466
+ faceDown?: boolean;
467
+ backStyle?: 'classic' | 'blue' | 'red' | 'custom';
468
+ meaning?: string;
469
+ }
470
+ export interface TarotCardMeta {
471
+ name: string;
472
+ nameCn?: string;
473
+ number: number | string;
474
+ arcana: 'major' | 'minor';
475
+ suit?: 'wands' | 'cups' | 'swords' | 'pentacles';
476
+ reversed?: boolean;
477
+ keywords?: string[];
478
+ upright?: string;
479
+ reversedMeaning?: string;
480
+ }
481
+ /** Union type of all structured Meta types */
482
+ export type CardMeta = DataCardMeta | ArgumentCardMeta | QuoteCardMeta | DefinitionCardMeta | ChartCardMeta | TableCardMeta | CodeCardMeta | KeypointCardMeta | ExampleCardMeta | SummaryCardMeta | ReferenceCardMeta | InspirationCardMeta | TimelineCardMeta | ComparisonCardMeta | ProcessCardMeta | GifCardMeta | QrcodeCardMeta | PersonCardMeta | TerminalCardMeta | LottieCardMeta | WebpageCardMeta | CountdownCardMeta | ThreeDCardMeta | ImageCardMeta | Live2DCardMeta | LinkCardMeta | FileCardMeta | MathCardMeta | TodoCardMeta | PositionCardMeta | TimestampCardMeta | ColorCardMeta | EventCardMeta | VoiceCardMeta | CommentCardMeta | StoryCardMeta | SocialCardMeta | PokerCardMeta | TarotCardMeta | Record<string, unknown>;
483
+ /** CardKind → Meta type mapping */
484
+ export interface CardKindMetaMap {
485
+ data: DataCardMeta;
486
+ chart: ChartCardMeta;
487
+ argument: ArgumentCardMeta;
488
+ quote: QuoteCardMeta;
489
+ definition: DefinitionCardMeta;
490
+ table: TableCardMeta;
491
+ code: CodeCardMeta;
492
+ keypoint: KeypointCardMeta;
493
+ example: ExampleCardMeta;
494
+ summary: SummaryCardMeta;
495
+ reference: ReferenceCardMeta;
496
+ inspiration: InspirationCardMeta;
497
+ timeline: TimelineCardMeta;
498
+ comparison: ComparisonCardMeta;
499
+ process: ProcessCardMeta;
500
+ gif: GifCardMeta;
501
+ qrcode: QrcodeCardMeta;
502
+ person: PersonCardMeta;
503
+ terminal: TerminalCardMeta;
504
+ lottie: LottieCardMeta;
505
+ webpage: WebpageCardMeta;
506
+ countdown: CountdownCardMeta;
507
+ threed: ThreeDCardMeta;
508
+ image: ImageCardMeta;
509
+ live2d: Live2DCardMeta;
510
+ link: LinkCardMeta;
511
+ file: FileCardMeta;
512
+ math: MathCardMeta;
513
+ todo: TodoCardMeta;
514
+ position: PositionCardMeta;
515
+ timestamp: TimestampCardMeta;
516
+ color: ColorCardMeta;
517
+ event: EventCardMeta;
518
+ voice: VoiceCardMeta;
519
+ comment: CommentCardMeta;
520
+ story: StoryCardMeta;
521
+ social: SocialCardMeta;
522
+ poker: PokerCardMeta;
523
+ tarot: TarotCardMeta;
524
+ text: Record<string, unknown>;
525
+ audio: Record<string, unknown>;
526
+ video: Record<string, unknown>;
527
+ idea: Record<string, unknown>;
528
+ flash: Record<string, unknown>;
529
+ }
@@ -0,0 +1,7 @@
1
+ export type { ApiErr, ApiOk, ApiResult, StreamEvent } from './api.js';
2
+ export { err, ok } from './api.js';
3
+ export type { ArgumentCardMeta, CardKind, CardKindMetaMap, CardMeta, CardPriority, ChartCardMeta, CodeCardMeta, ColorCardMeta, CommentCardMeta, ComparisonCardMeta, CountdownCardMeta, DataCardMeta, DefinitionCardMeta, EventCardMeta, ExampleCardMeta, FileCardMeta, GifCardMeta, ImageCardMeta, InspirationCardMeta, KeypointCardMeta, LinkCardMeta, Live2DCardMeta, LottieCardMeta, MathCardMeta, PersonCardMeta, PokerCardMeta, PositionCardMeta, ProcessCardMeta, QrcodeCardMeta, QuoteCardMeta, ReferenceCardMeta, SocialCardMeta, StoryCardMeta, SummaryCardMeta, TableCardMeta, TarotCardMeta, TerminalCardMeta, ThreeDCardMeta, TimelineCardMeta, TimestampCardMeta, TodoCardMeta, VoiceCardMeta, WebpageCardMeta, } from './card.js';
4
+ export type { Card, Deck, Material, OutlineItem, Project, ProjectStatus, ResearchAngle, ResearchGoal, ResearchSession, ResearchStatus, SkillDef, SkillStatus, TaskArtifact, TaskRecord, TaskStatus, ThemePreset, TodoItem, } from './models.js';
5
+ export type { CardRecord, DeckRecord, MaterialRecord, OutlineItemRecord, SkillRecord, ThemeComponent, ThemeFolder, ThemeRefRecord, } from './records.js';
6
+ export type { AppSettings, UserSettings, } from './settings.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACrE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,UAAU,CAAA;AAElC,YAAY,EACV,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,eAAe,EACf,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,WAAW,CAAA;AAElB,YAAY,EACV,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,OAAO,EACP,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,GACT,MAAM,aAAa,CAAA;AAEpB,YAAY,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,WAAW,EACX,cAAc,GACf,MAAM,cAAc,CAAA;AAErB,YAAY,EACV,WAAW,EACX,YAAY,GACb,MAAM,eAAe,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ // ═══════════════════════════════════════════════════════════════
2
+ // @shadowob/flash-types — Public API
3
+ // ═══════════════════════════════════════════════════════════════
4
+ export { err, ok } from './api.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,qCAAqC;AACrC,kEAAkE;AAIlE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,UAAU,CAAA"}
package/dist/index.ts ADDED
@@ -0,0 +1,14 @@
1
+ // ═══════════════════════════════════════════════════════════════
2
+ // @shadowob/flash-types — Public API
3
+ // ═══════════════════════════════════════════════════════════════
4
+ // API response types + helpers
5
+ export type { ApiErr, ApiOk, ApiResult, StreamEvent } from './api.js';
6
+ export { err, ok } from './api.js';
7
+ // Card kinds & meta
8
+ export type { ArgumentCardMeta, CardKind, CardKindMetaMap, CardMeta, CardPriority, ChartCardMeta, CodeCardMeta, ColorCardMeta, CommentCardMeta, ComparisonCardMeta, CountdownCardMeta, DataCardMeta, DefinitionCardMeta, EventCardMeta, ExampleCardMeta, FileCardMeta, GifCardMeta, ImageCardMeta, InspirationCardMeta, KeypointCardMeta, LinkCardMeta, Live2DCardMeta, LottieCardMeta, MathCardMeta, PersonCardMeta, PokerCardMeta, PositionCardMeta, ProcessCardMeta, QrcodeCardMeta, QuoteCardMeta, ReferenceCardMeta, SocialCardMeta, StoryCardMeta, SummaryCardMeta, TableCardMeta, TarotCardMeta, TerminalCardMeta, ThreeDCardMeta, TimelineCardMeta, TimestampCardMeta, TodoCardMeta, VoiceCardMeta, WebpageCardMeta, } from './card.js';
9
+ // Domain models
10
+ export type { Card, Deck, Material, OutlineItem, Project, ProjectStatus, ResearchAngle, ResearchGoal, ResearchSession, ResearchStatus, SkillDef, SkillStatus, TaskArtifact, TaskRecord, TaskStatus, ThemePreset, TodoItem, } from './models.js';
11
+ // Server records (DAO layer)
12
+ export type { CardRecord, DeckRecord, MaterialRecord, OutlineItemRecord, SkillRecord, ThemeComponent, ThemeFolder, ThemeRefRecord, } from './records.js';
13
+ // Settings
14
+ export type { AppSettings, UserSettings, } from './settings.js';