@semiont/api-client 0.2.2-build.15 → 0.2.2

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 (73) hide show
  1. package/dist/{types.d.ts → index-DHh0ToZB.d.ts} +460 -6
  2. package/dist/index.d.ts +909 -13
  3. package/dist/index.js +1598 -60
  4. package/dist/index.js.map +1 -1
  5. package/dist/utils/index.d.ts +1 -12
  6. package/dist/utils/index.js +597 -26
  7. package/dist/utils/index.js.map +1 -1
  8. package/package.json +11 -8
  9. package/dist/__tests__/client.test.d.ts +0 -28
  10. package/dist/__tests__/client.test.d.ts.map +0 -1
  11. package/dist/__tests__/client.test.js +0 -567
  12. package/dist/__tests__/client.test.js.map +0 -1
  13. package/dist/__tests__/sse-client.test.d.ts +0 -7
  14. package/dist/__tests__/sse-client.test.d.ts.map +0 -1
  15. package/dist/__tests__/sse-client.test.js +0 -421
  16. package/dist/__tests__/sse-client.test.js.map +0 -1
  17. package/dist/__tests__/sse-stream.test.d.ts +0 -7
  18. package/dist/__tests__/sse-stream.test.d.ts.map +0 -1
  19. package/dist/__tests__/sse-stream.test.js +0 -394
  20. package/dist/__tests__/sse-stream.test.js.map +0 -1
  21. package/dist/__tests__/svg-selectors.test.d.ts +0 -5
  22. package/dist/__tests__/svg-selectors.test.d.ts.map +0 -1
  23. package/dist/__tests__/svg-selectors.test.js +0 -124
  24. package/dist/__tests__/svg-selectors.test.js.map +0 -1
  25. package/dist/branded-types.d.ts +0 -70
  26. package/dist/branded-types.d.ts.map +0 -1
  27. package/dist/branded-types.js +0 -62
  28. package/dist/branded-types.js.map +0 -1
  29. package/dist/client.d.ts +0 -243
  30. package/dist/client.d.ts.map +0 -1
  31. package/dist/client.js +0 -460
  32. package/dist/client.js.map +0 -1
  33. package/dist/index.d.ts.map +0 -1
  34. package/dist/mime-utils.d.ts +0 -27
  35. package/dist/mime-utils.d.ts.map +0 -1
  36. package/dist/mime-utils.js +0 -49
  37. package/dist/mime-utils.js.map +0 -1
  38. package/dist/sse/index.d.ts +0 -343
  39. package/dist/sse/index.d.ts.map +0 -1
  40. package/dist/sse/index.js +0 -404
  41. package/dist/sse/index.js.map +0 -1
  42. package/dist/sse/stream.d.ts +0 -58
  43. package/dist/sse/stream.d.ts.map +0 -1
  44. package/dist/sse/stream.js +0 -187
  45. package/dist/sse/stream.js.map +0 -1
  46. package/dist/sse/types.d.ts +0 -295
  47. package/dist/sse/types.d.ts.map +0 -1
  48. package/dist/sse/types.js +0 -10
  49. package/dist/sse/types.js.map +0 -1
  50. package/dist/types.d.ts.map +0 -1
  51. package/dist/types.js +0 -7
  52. package/dist/types.js.map +0 -1
  53. package/dist/utils/annotations.d.ts +0 -191
  54. package/dist/utils/annotations.d.ts.map +0 -1
  55. package/dist/utils/annotations.js +0 -404
  56. package/dist/utils/annotations.js.map +0 -1
  57. package/dist/utils/events.d.ts +0 -74
  58. package/dist/utils/events.d.ts.map +0 -1
  59. package/dist/utils/events.js +0 -329
  60. package/dist/utils/events.js.map +0 -1
  61. package/dist/utils/index.d.ts.map +0 -1
  62. package/dist/utils/locales.d.ts +0 -31
  63. package/dist/utils/locales.d.ts.map +0 -1
  64. package/dist/utils/locales.js +0 -83
  65. package/dist/utils/locales.js.map +0 -1
  66. package/dist/utils/resources.d.ts +0 -34
  67. package/dist/utils/resources.d.ts.map +0 -1
  68. package/dist/utils/resources.js +0 -63
  69. package/dist/utils/resources.js.map +0 -1
  70. package/dist/utils/validation.d.ts +0 -57
  71. package/dist/utils/validation.d.ts.map +0 -1
  72. package/dist/utils/validation.js +0 -89
  73. package/dist/utils/validation.js.map +0 -1
@@ -2,8 +2,7 @@
2
2
  * This file was auto-generated by openapi-typescript.
3
3
  * Do not make direct changes to the file.
4
4
  */
5
-
6
- export interface paths {
5
+ interface paths {
7
6
  "/resources/{id}": {
8
7
  parameters: {
9
8
  query?: never;
@@ -2287,8 +2286,8 @@ export interface paths {
2287
2286
  trace?: never;
2288
2287
  };
2289
2288
  }
2290
- export type webhooks = Record<string, never>;
2291
- export interface components {
2289
+ type webhooks = Record<string, never>;
2290
+ interface components {
2292
2291
  schemas: {
2293
2292
  AcceptTermsResponse: {
2294
2293
  success: boolean;
@@ -3173,5 +3172,460 @@ export interface components {
3173
3172
  headers: never;
3174
3173
  pathItems: never;
3175
3174
  }
3176
- export type $defs = Record<string, never>;
3177
- export type operations = Record<string, never>;
3175
+ type $defs = Record<string, never>;
3176
+ type operations = Record<string, never>;
3177
+
3178
+ /**
3179
+ * Branded string types for compile-time type safety
3180
+ *
3181
+ * These types are zero-cost at runtime but prevent mixing
3182
+ * different string types at compile time.
3183
+ */
3184
+
3185
+ type Motivation = components['schemas']['Motivation'];
3186
+ type ContentFormat = components['schemas']['ContentFormat'];
3187
+ type Email = string & {
3188
+ readonly __brand: 'Email';
3189
+ };
3190
+ type AuthCode = string & {
3191
+ readonly __brand: 'AuthCode';
3192
+ };
3193
+ type GoogleCredential = string & {
3194
+ readonly __brand: 'GoogleCredential';
3195
+ };
3196
+ type AccessToken = string & {
3197
+ readonly __brand: 'AccessToken';
3198
+ };
3199
+ type RefreshToken = string & {
3200
+ readonly __brand: 'RefreshToken';
3201
+ };
3202
+ type MCPToken = string & {
3203
+ readonly __brand: 'MCPToken';
3204
+ };
3205
+ type CloneToken = string & {
3206
+ readonly __brand: 'CloneToken';
3207
+ };
3208
+ type JobId = string & {
3209
+ readonly __brand: 'JobId';
3210
+ };
3211
+ type UserDID = string & {
3212
+ readonly __brand: 'UserDID';
3213
+ };
3214
+ type EntityType = string & {
3215
+ readonly __brand: 'EntityType';
3216
+ };
3217
+ type SearchQuery = string & {
3218
+ readonly __brand: 'SearchQuery';
3219
+ };
3220
+ type BaseUrl = string & {
3221
+ readonly __brand: 'BaseUrl';
3222
+ };
3223
+ declare function email(value: string): Email;
3224
+ declare function authCode(value: string): AuthCode;
3225
+ declare function googleCredential(value: string): GoogleCredential;
3226
+ declare function accessToken(value: string): AccessToken;
3227
+ declare function refreshToken(value: string): RefreshToken;
3228
+ declare function mcpToken(value: string): MCPToken;
3229
+ declare function cloneToken(value: string): CloneToken;
3230
+ declare function jobId(value: string): JobId;
3231
+ declare function userDID(value: string): UserDID;
3232
+ declare function entityType(value: string): EntityType;
3233
+ declare function searchQuery(value: string): SearchQuery;
3234
+ declare function baseUrl(value: string): BaseUrl;
3235
+ type ResourceUri = string & {
3236
+ readonly __brand: 'ResourceUri';
3237
+ };
3238
+ type AnnotationUri = string & {
3239
+ readonly __brand: 'AnnotationUri';
3240
+ };
3241
+ type ResourceAnnotationUri = string & {
3242
+ readonly __brand: 'ResourceAnnotationUri';
3243
+ };
3244
+ declare function resourceUri(uri: string): ResourceUri;
3245
+ declare function annotationUri(uri: string): AnnotationUri;
3246
+ declare function resourceAnnotationUri(uri: string): ResourceAnnotationUri;
3247
+
3248
+ /**
3249
+ * Annotation and Selector Utilities
3250
+ *
3251
+ * Pure TypeScript utilities for working with W3C Web Annotations.
3252
+ * No React dependencies - safe to use in any JavaScript environment.
3253
+ *
3254
+ * Body is either empty array (stub) or single SpecificResource (resolved)
3255
+ * Body can be array of TextualBody (tagging) + SpecificResource (linking)
3256
+ * Target can be simple string IRI or object with source and optional selector
3257
+ */
3258
+
3259
+ type Annotation$1 = components['schemas']['Annotation'];
3260
+ type HighlightAnnotation = Annotation$1;
3261
+ type ReferenceAnnotation = Annotation$1;
3262
+ type TextPositionSelector = components['schemas']['TextPositionSelector'];
3263
+ type TextQuoteSelector = components['schemas']['TextQuoteSelector'];
3264
+ type SvgSelector = components['schemas']['SvgSelector'];
3265
+ type Selector = TextPositionSelector | TextQuoteSelector | SvgSelector;
3266
+
3267
+ /**
3268
+ * Get the source from an annotation body (null if stub)
3269
+ * Search for SpecificResource in body array
3270
+ */
3271
+ declare function getBodySource(body: Annotation$1['body']): ResourceUri | null;
3272
+ /**
3273
+ * Get the type from an annotation body (returns first body type in array)
3274
+ */
3275
+ declare function getBodyType(body: Annotation$1['body']): 'TextualBody' | 'SpecificResource' | null;
3276
+ /**
3277
+ * Check if body is resolved (has a source)
3278
+ * Check for SpecificResource in body array
3279
+ */
3280
+ declare function isBodyResolved(body: Annotation$1['body']): boolean;
3281
+ /**
3282
+ * Get the source IRI from target (handles both string and object forms)
3283
+ */
3284
+ declare function getTargetSource(target: Annotation$1['target']): ResourceUri;
3285
+ /**
3286
+ * Get the selector from target (undefined if string or no selector)
3287
+ */
3288
+ declare function getTargetSelector(target: Annotation$1['target']): {
3289
+ type: "TextPositionSelector";
3290
+ start: number;
3291
+ end: number;
3292
+ } | {
3293
+ type: "TextQuoteSelector";
3294
+ exact: string;
3295
+ prefix?: string;
3296
+ suffix?: string;
3297
+ } | {
3298
+ type: "SvgSelector";
3299
+ value: string;
3300
+ } | ({
3301
+ type: "TextPositionSelector";
3302
+ start: number;
3303
+ end: number;
3304
+ } | {
3305
+ type: "TextQuoteSelector";
3306
+ exact: string;
3307
+ prefix?: string;
3308
+ suffix?: string;
3309
+ } | {
3310
+ type: "SvgSelector";
3311
+ value: string;
3312
+ })[] | undefined;
3313
+ /**
3314
+ * Check if target has a selector
3315
+ */
3316
+ declare function hasTargetSelector(target: Annotation$1['target']): boolean;
3317
+ /**
3318
+ * Extract entity types from annotation bodies
3319
+ * Entity types are stored as TextualBody with purpose: "tagging"
3320
+ * Accepts any object with a body property matching Annotation['body']
3321
+ */
3322
+ declare function getEntityTypes(annotation: {
3323
+ body: Annotation$1['body'];
3324
+ }): string[];
3325
+ /**
3326
+ * Type guard to check if an annotation is a highlight
3327
+ */
3328
+ declare function isHighlight(annotation: Annotation$1): annotation is HighlightAnnotation;
3329
+ /**
3330
+ * Type guard to check if an annotation is a reference (linking)
3331
+ */
3332
+ declare function isReference(annotation: Annotation$1): annotation is ReferenceAnnotation;
3333
+ /**
3334
+ * Type guard to check if an annotation is an assessment
3335
+ */
3336
+ declare function isAssessment(annotation: Annotation$1): annotation is Annotation$1;
3337
+ /**
3338
+ * Type guard to check if an annotation is a comment
3339
+ */
3340
+ declare function isComment(annotation: Annotation$1): annotation is Annotation$1;
3341
+ /**
3342
+ * Type guard to check if an annotation is a tag
3343
+ */
3344
+ declare function isTag(annotation: Annotation$1): annotation is Annotation$1;
3345
+ /**
3346
+ * Extract comment text from a comment annotation's body
3347
+ * @param annotation - The annotation to extract comment text from
3348
+ * @returns The comment text, or undefined if not a comment or no text found
3349
+ */
3350
+ declare function getCommentText(annotation: Annotation$1): string | undefined;
3351
+ /**
3352
+ * Extract tag category from a tag annotation's body
3353
+ * Tags use dual-body structure: first body has purpose: "tagging" with category value
3354
+ * @param annotation - The annotation to extract category from
3355
+ * @returns The tag category (e.g., "Issue", "Rule"), or undefined if not a tag or no category found
3356
+ */
3357
+ declare function getTagCategory(annotation: Annotation$1): string | undefined;
3358
+ /**
3359
+ * Extract tag schema ID from a tag annotation's body
3360
+ * Tags use dual-body structure: second body has purpose: "classifying" with schema ID
3361
+ * @param annotation - The annotation to extract schema ID from
3362
+ * @returns The schema ID (e.g., "legal-irac"), or undefined if not a tag or no schema found
3363
+ */
3364
+ declare function getTagSchemaId(annotation: Annotation$1): string | undefined;
3365
+ /**
3366
+ * Type guard to check if a reference annotation is a stub (unresolved)
3367
+ * Stub if no SpecificResource in body array
3368
+ */
3369
+ declare function isStubReference(annotation: Annotation$1): boolean;
3370
+ /**
3371
+ * Type guard to check if a reference annotation is resolved
3372
+ * Resolved if SpecificResource exists in body array
3373
+ */
3374
+ declare function isResolvedReference(annotation: Annotation$1): annotation is ReferenceAnnotation;
3375
+ /**
3376
+ * Get the exact text from a selector (single or array)
3377
+ *
3378
+ * When selector is an array, tries to find a TextQuoteSelector (which has exact text).
3379
+ * TextPositionSelector does not have exact text, only character offsets.
3380
+ * Handles undefined selector (when target is a string IRI with no selector)
3381
+ */
3382
+ declare function getExactText(selector: Selector | Selector[] | undefined): string;
3383
+ /**
3384
+ * Get the exact text from an annotation's target selector
3385
+ * Uses getTargetSelector helper to safely get selector
3386
+ */
3387
+ declare function getAnnotationExactText(annotation: Annotation$1): string;
3388
+ /**
3389
+ * Get the primary selector from a selector (single or array)
3390
+ *
3391
+ * When selector is an array, returns the first selector.
3392
+ * When selector is a single object, returns it as-is.
3393
+ */
3394
+ declare function getPrimarySelector(selector: Selector | Selector[]): Selector;
3395
+ /**
3396
+ * Get TextPositionSelector from a selector (single or array)
3397
+ *
3398
+ * Returns the first TextPositionSelector found, or null if none exists.
3399
+ * Handles undefined selector (when target is a string IRI with no selector)
3400
+ */
3401
+ declare function getTextPositionSelector(selector: Selector | Selector[] | undefined): TextPositionSelector | null;
3402
+ /**
3403
+ * Get TextQuoteSelector from a selector (single or array)
3404
+ *
3405
+ * Returns the first TextQuoteSelector found, or null if none exists.
3406
+ */
3407
+ declare function getTextQuoteSelector(selector: Selector | Selector[]): TextQuoteSelector | null;
3408
+ /**
3409
+ * Get SvgSelector from a selector (single or array)
3410
+ *
3411
+ * Returns the first SvgSelector found, or null if none exists.
3412
+ */
3413
+ declare function getSvgSelector(selector: Selector | Selector[] | undefined): SvgSelector | null;
3414
+ /**
3415
+ * Validate SVG markup for W3C compliance
3416
+ *
3417
+ * Checks that:
3418
+ * - SVG contains xmlns attribute
3419
+ * - SVG is well-formed XML
3420
+ * - SVG contains at least one shape element
3421
+ *
3422
+ * @returns null if valid, error message if invalid
3423
+ */
3424
+ declare function validateSvgMarkup(svg: string): string | null;
3425
+ /**
3426
+ * Extract bounding box from SVG markup
3427
+ *
3428
+ * Attempts to extract x, y, width, height from the SVG viewBox or root element.
3429
+ * Returns null if bounding box cannot be determined.
3430
+ */
3431
+ declare function extractBoundingBox(svg: string): {
3432
+ x: number;
3433
+ y: number;
3434
+ width: number;
3435
+ height: number;
3436
+ } | null;
3437
+
3438
+ /**
3439
+ * Event Utilities
3440
+ *
3441
+ * Pure TypeScript utilities for working with resource events.
3442
+ * No React dependencies - safe to use in any JavaScript environment.
3443
+ */
3444
+
3445
+ type EventsResponse = paths['/resources/{id}/events']['get']['responses'][200]['content']['application/json'];
3446
+ type StoredEvent = EventsResponse['events'][number];
3447
+ type ResourceEvent = StoredEvent['event'];
3448
+ type EventMetadata = StoredEvent['metadata'];
3449
+ type Annotation = components['schemas']['Annotation'];
3450
+ type ResourceEventType = 'resource.created' | 'resource.cloned' | 'resource.archived' | 'resource.unarchived' | 'annotation.added' | 'annotation.removed' | 'annotation.body.updated' | 'entitytag.added' | 'entitytag.removed' | 'entitytype.added' | 'job.started' | 'job.progress' | 'job.completed' | 'job.failed';
3451
+ type TranslateFn = (key: string, params?: Record<string, string | number>) => string;
3452
+ /**
3453
+ * Extract annotation ID from event payload
3454
+ * Returns null if event is not annotation-related
3455
+ *
3456
+ * For annotation.added: extracts full URI from payload.annotation.id
3457
+ * For annotation.removed/body.updated: constructs full URI from payload.annotationId (UUID) + resourceId
3458
+ */
3459
+ declare function getAnnotationUriFromEvent(event: StoredEvent): AnnotationUri | null;
3460
+ /**
3461
+ * Check if an event is related to a specific annotation
3462
+ */
3463
+ declare function isEventRelatedToAnnotation(event: StoredEvent, annotationUri: AnnotationUri): boolean;
3464
+ /**
3465
+ * Type guard to check if event is a resource event
3466
+ */
3467
+ declare function isResourceEvent(event: any): event is StoredEvent;
3468
+ /**
3469
+ * Format event type for display with i18n support
3470
+ */
3471
+ declare function formatEventType(type: ResourceEventType, t: TranslateFn, payload?: any): string;
3472
+ /**
3473
+ * Get emoji for event type
3474
+ * For unified annotation events, pass the payload to determine motivation
3475
+ */
3476
+ declare function getEventEmoji(type: ResourceEventType, payload?: any): string;
3477
+ /**
3478
+ * Format timestamp as relative time with i18n support
3479
+ */
3480
+ declare function formatRelativeTime(timestamp: string, t: TranslateFn): string;
3481
+ /**
3482
+ * Get display content from event payload - complete implementation
3483
+ */
3484
+ declare function getEventDisplayContent(event: StoredEvent, annotations: Annotation[], // Unified annotations array (all types)
3485
+ allEvents: StoredEvent[]): {
3486
+ exact: string;
3487
+ isQuoted: boolean;
3488
+ isTag: boolean;
3489
+ } | null;
3490
+ /**
3491
+ * Get entity types from event payload
3492
+ */
3493
+ declare function getEventEntityTypes(event: StoredEvent): string[];
3494
+ /**
3495
+ * Resource creation details
3496
+ */
3497
+ interface ResourceCreationDetails {
3498
+ type: 'created' | 'cloned';
3499
+ method: string;
3500
+ userId?: string;
3501
+ sourceDocId?: string;
3502
+ parentResourceId?: string;
3503
+ metadata?: Record<string, any>;
3504
+ }
3505
+ /**
3506
+ * Get resource creation details from event
3507
+ */
3508
+ declare function getResourceCreationDetails(event: StoredEvent): ResourceCreationDetails | null;
3509
+
3510
+ /**
3511
+ * Locale information
3512
+ * Copied from SDK for frontend use
3513
+ */
3514
+ interface LocaleInfo {
3515
+ code: string;
3516
+ nativeName: string;
3517
+ englishName: string;
3518
+ }
3519
+ declare const LOCALES: readonly LocaleInfo[];
3520
+ /**
3521
+ * Get locale information by code
3522
+ */
3523
+ declare function getLocaleInfo(code: string | undefined): LocaleInfo | undefined;
3524
+ /**
3525
+ * Get the native name of a language by its locale code
3526
+ */
3527
+ declare function getLocaleNativeName(code: string | undefined): string | undefined;
3528
+ /**
3529
+ * Get the English name of a language by its locale code
3530
+ */
3531
+ declare function getLocaleEnglishName(code: string | undefined): string | undefined;
3532
+ /**
3533
+ * Format locale code for display as "Native Name (code)"
3534
+ */
3535
+ declare function formatLocaleDisplay(code: string | undefined): string | undefined;
3536
+ /**
3537
+ * Get all supported locale codes
3538
+ */
3539
+ declare function getAllLocaleCodes(): readonly string[];
3540
+
3541
+ /**
3542
+ * Helper functions for working with W3C ResourceDescriptor
3543
+ */
3544
+
3545
+ type ResourceDescriptor = components['schemas']['ResourceDescriptor'];
3546
+ type Representation = components['schemas']['Representation'];
3547
+ /**
3548
+ * Get the resource ID from @id property
3549
+ *
3550
+ * For internal resources: extracts UUID from "http://localhost:4000/resources/{uuid}"
3551
+ * For external resources: returns undefined
3552
+ *
3553
+ * This is used for routing - the frontend URL should contain only the resource ID,
3554
+ * not the full HTTP URI.
3555
+ */
3556
+ declare function getResourceId(resource: ResourceDescriptor | undefined): string | undefined;
3557
+ /**
3558
+ * Get the primary representation (first or only representation)
3559
+ */
3560
+ declare function getPrimaryRepresentation(resource: ResourceDescriptor | undefined): Representation | undefined;
3561
+ /**
3562
+ * Get the media type from the primary representation
3563
+ */
3564
+ declare function getPrimaryMediaType(resource: ResourceDescriptor | undefined): string | undefined;
3565
+ /**
3566
+ * Get the checksum from the primary representation
3567
+ */
3568
+ declare function getChecksum(resource: ResourceDescriptor | undefined): string | undefined;
3569
+ /**
3570
+ * Get the language from the primary representation
3571
+ */
3572
+ declare function getLanguage(resource: ResourceDescriptor | undefined): string | undefined;
3573
+
3574
+ /**
3575
+ * Generic validation utilities for @semiont/api-client
3576
+ *
3577
+ * Pure TypeScript validation with no external dependencies.
3578
+ * Safe to use in any JavaScript environment (Node.js, browser, Deno, etc.)
3579
+ */
3580
+ /**
3581
+ * Validation result types
3582
+ */
3583
+ type ValidationSuccess<T> = {
3584
+ success: true;
3585
+ data: T;
3586
+ };
3587
+ type ValidationFailure = {
3588
+ success: false;
3589
+ error: string;
3590
+ details?: string[];
3591
+ };
3592
+ type ValidationResult<T> = ValidationSuccess<T> | ValidationFailure;
3593
+ /**
3594
+ * JWT Token validation
3595
+ *
3596
+ * Validates JWT token format (header.payload.signature).
3597
+ * Does not verify signature - use for format validation only.
3598
+ */
3599
+ declare const JWTTokenSchema: {
3600
+ parse(token: unknown): string;
3601
+ safeParse(token: unknown): ValidationResult<string>;
3602
+ };
3603
+ /**
3604
+ * Generic validation helper with error formatting
3605
+ *
3606
+ * Wraps any schema's parse method with try/catch and returns ValidationResult.
3607
+ *
3608
+ * @example
3609
+ * ```typescript
3610
+ * const result = validateData(JWTTokenSchema, 'eyJ...');
3611
+ * if (result.success) {
3612
+ * console.log('Valid token:', result.data);
3613
+ * } else {
3614
+ * console.error('Invalid:', result.error);
3615
+ * }
3616
+ * ```
3617
+ */
3618
+ declare function validateData<T>(schema: {
3619
+ parse(data: unknown): T;
3620
+ }, data: unknown): ValidationResult<T>;
3621
+ /**
3622
+ * Email validation helper
3623
+ *
3624
+ * Validates email format using RFC 5322 simplified regex.
3625
+ *
3626
+ * @param email - Email address to validate
3627
+ * @returns true if valid email format
3628
+ */
3629
+ declare function isValidEmail(email: string): boolean;
3630
+
3631
+ export { type $defs as $, type AccessToken as A, type BaseUrl as B, type ContentFormat as C, getTagSchemaId as D, type EntityType as E, isStubReference as F, type GoogleCredential as G, isResolvedReference as H, getExactText as I, type JobId as J, getAnnotationExactText as K, getPrimarySelector as L, type Motivation as M, getTextPositionSelector as N, getTextQuoteSelector as O, getSvgSelector as P, validateSvgMarkup as Q, type ResourceUri as R, type SearchQuery as S, type TextPositionSelector as T, type UserDID as U, extractBoundingBox as V, type StoredEvent as W, type EventMetadata as X, type ResourceEventType as Y, getAnnotationUriFromEvent as Z, isEventRelatedToAnnotation as _, type AnnotationUri as a, isResourceEvent as a0, formatEventType as a1, getEventEmoji as a2, formatRelativeTime as a3, getEventDisplayContent as a4, getEventEntityTypes as a5, type ResourceCreationDetails as a6, getResourceCreationDetails as a7, type LocaleInfo as a8, LOCALES as a9, userDID as aA, entityType as aB, searchQuery as aC, baseUrl as aD, resourceUri as aE, annotationUri as aF, resourceAnnotationUri as aG, type ResourceEvent as aH, getLocaleInfo as aa, getLocaleNativeName as ab, getLocaleEnglishName as ac, formatLocaleDisplay as ad, getAllLocaleCodes as ae, getResourceId as af, getPrimaryRepresentation as ag, getPrimaryMediaType as ah, getChecksum as ai, getLanguage as aj, type ValidationSuccess as ak, type ValidationFailure as al, type ValidationResult as am, JWTTokenSchema as an, validateData as ao, isValidEmail as ap, type AuthCode as aq, type MCPToken as ar, email as as, authCode as at, googleCredential as au, accessToken as av, refreshToken as aw, mcpToken as ax, cloneToken as ay, jobId as az, type Email as b, type components as c, type RefreshToken as d, type CloneToken as e, type ResourceAnnotationUri as f, type TextQuoteSelector as g, type SvgSelector as h, type Selector as i, getBodySource as j, getBodyType as k, isBodyResolved as l, getTargetSource as m, getTargetSelector as n, type operations as o, type paths as p, hasTargetSelector as q, getEntityTypes as r, isHighlight as s, isReference as t, isAssessment as u, isComment as v, type webhooks as w, isTag as x, getCommentText as y, getTagCategory as z };