domani 1.0.2 → 1.0.4

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/index.d.ts CHANGED
@@ -18,7 +18,7 @@ export interface Error {
18
18
  /** Human-readable error message */
19
19
  error: string;
20
20
  /** Machine-readable error code */
21
- code: "MISSING_API_KEY" | "INVALID_API_KEY" | "EXPIRED_API_KEY" | "MISSING_PARAMETER" | "INVALID_DOMAIN" | "PAYMENT_REQUIRED" | "DOMAIN_UNAVAILABLE" | "RATE_LIMIT_EXCEEDED" | "USER_EXISTS" | "NOT_FOUND" | "UNKNOWN_PROVIDER" | "UNKNOWN_METHOD" | "TARGET_REQUIRED" | "INVALID_PARAMETER" | "CONTACT_REQUIRED" | "INVALID_CONTACT" | "INSUFFICIENT_SCOPE" | "SCOPE_ESCALATION" | "DOMAIN_EXISTS" | "DOMAIN_NOT_ACTIVE" | "UNSUPPORTED_TLD" | "NOT_AVAILABLE" | "ALREADY_REGISTERED" | "TRANSFER_NOT_ELIGIBLE" | "ALREADY_LISTED" | "LISTING_SOLD" | "SELF_PURCHASE" | "DESCRIPTION_TOO_LONG" | "DEAL_NOT_FOUND" | "INVALID_DEAL_STATE" | "EPP_ATTEMPTS_EXCEEDED" | "ACTIVE_DEAL_EXISTS" | "AGENT_IDENTITY_NOT_FOUND" | "AGENT_IDENTITY_ESCALATION" | "CREDENTIAL_REVOKE_FAILED";
21
+ code: "MISSING_API_KEY" | "INVALID_API_KEY" | "EXPIRED_API_KEY" | "MISSING_PARAMETER" | "INVALID_DOMAIN" | "PAYMENT_REQUIRED" | "DOMAIN_UNAVAILABLE" | "RATE_LIMIT_EXCEEDED" | "USER_EXISTS" | "NOT_FOUND" | "UNKNOWN_PROVIDER" | "UNKNOWN_METHOD" | "TARGET_REQUIRED" | "INVALID_PARAMETER" | "CONTACT_REQUIRED" | "INVALID_CONTACT" | "INSUFFICIENT_SCOPE" | "SCOPE_ESCALATION" | "DOMAIN_EXISTS" | "DOMAIN_NOT_ACTIVE" | "UNSUPPORTED_TLD" | "NOT_AVAILABLE" | "ALREADY_REGISTERED" | "TRANSFER_NOT_ELIGIBLE" | "ALREADY_LISTED" | "LISTING_SOLD" | "SELF_PURCHASE" | "DESCRIPTION_TOO_LONG" | "DEAL_NOT_FOUND" | "INVALID_DEAL_STATE" | "EPP_ATTEMPTS_EXCEEDED" | "ACTIVE_DEAL_EXISTS" | "AGENT_IDENTITY_NOT_FOUND" | "AGENT_IDENTITY_ESCALATION" | "CREDENTIAL_REVOKE_FAILED" | "INVALID_IDEMPOTENCY_KEY" | "IDEMPOTENCY_KEY_MISMATCH" | "IDEMPOTENCY_KEY_REUSED" | "OPERATION_IN_PROGRESS" | "OPERATION_SUPERSEDED" | "INVALID_OPERATION_RECEIPT" | "WORKSPACE_ADMIN_REQUIRED" | "PRINCIPAL_NOT_IN_WORKSPACE" | "MAILBOX_NOT_IN_WORKSPACE" | "GROUP_NOT_IN_WORKSPACE" | "COLLECTION_NOT_IN_WORKSPACE" | "ACCESS_VERSION_CONFLICT" | "ACCESS_OFFER_INVALID" | "ACCESS_OFFER_EMAIL_MISMATCH" | "MAIL_DOMAIN_CAPACITY_EXHAUSTED" | "MAIL_PROVIDER_ERROR";
22
22
  /** Actionable recovery guidance for the caller */
23
23
  hint?: string;
24
24
  /** CLI command to resolve the error (e.g. 'domani login', 'domani billing'). Present in CLI --json output. */
@@ -31,6 +31,8 @@ export interface Error {
31
31
  fix_url?: string;
32
32
  /** Seconds until retry is allowed (present on 429 responses) */
33
33
  retry_after?: number;
34
+ /** Whether retrying after the external condition changes is safe */
35
+ retryable?: boolean;
34
36
  }
35
37
  export interface SearchResult {
36
38
  /** Whether the domain is available for registration */
@@ -121,6 +123,23 @@ export interface DomainRecord {
121
123
  /** Number of mailboxes configured for this domain */
122
124
  mailboxCount: number;
123
125
  }
126
+ export interface ProvisionAgentResult {
127
+ domain: string;
128
+ domain_status: "registered" | "owned";
129
+ mailbox: {
130
+ address: string;
131
+ status: "created" | "existing";
132
+ } | null;
133
+ webhook: {
134
+ id: string;
135
+ url: string;
136
+ secret?: string;
137
+ header_names: string[];
138
+ } | null;
139
+ warnings: string[];
140
+ hint: string;
141
+ next_steps: string[];
142
+ }
124
143
  export interface MailRule {
125
144
  id?: string;
126
145
  /** Lower runs first */
@@ -133,6 +152,59 @@ export interface MailRule {
133
152
  enabled?: boolean;
134
153
  created_at?: string;
135
154
  }
155
+ export interface MailboxOperationReceipt {
156
+ operation_id: string;
157
+ idempotency_key: string;
158
+ /** True when this response reused the immutable completed receipt and performed no new mutation. */
159
+ idempotent_replay: boolean;
160
+ action: "move" | "mark_read" | "star" | "restore" | "delete_permanently";
161
+ status: "succeeded" | "partial";
162
+ results: ({
163
+ message_id: string;
164
+ ok: boolean;
165
+ folder?: "inbox" | "archive" | "sent" | "drafts" | "spam" | "trash";
166
+ changed?: boolean;
167
+ error?: {
168
+ code: string;
169
+ message: string;
170
+ };
171
+ })[];
172
+ summary: {
173
+ total: number;
174
+ succeeded: number;
175
+ failed: number;
176
+ changed: number;
177
+ };
178
+ created_at: string;
179
+ completed_at: string | null;
180
+ }
181
+ export interface LegacyMailboxOperationReceipt {
182
+ operation_id: string;
183
+ idempotency_key: string;
184
+ /** True when this response reused the immutable completed receipt and performed no new mutation. */
185
+ idempotent_replay: boolean;
186
+ action: "move" | "mark_read" | "star" | "restore" | "delete_permanently";
187
+ status: "succeeded" | "partial";
188
+ results: ({
189
+ message_id: string;
190
+ ok: boolean;
191
+ folder?: "inbox" | "archive" | "sent" | "drafts" | "spam" | "trash";
192
+ changed?: boolean;
193
+ error?: {
194
+ code: string;
195
+ message: string;
196
+ };
197
+ })[];
198
+ summary: {
199
+ total: number;
200
+ succeeded: number;
201
+ failed: number;
202
+ changed: number;
203
+ };
204
+ created_at: string;
205
+ completed_at: string | null;
206
+ count: number;
207
+ }
136
208
  export interface WorkspaceSummary {
137
209
  id: string;
138
210
  name: string;
@@ -147,34 +219,36 @@ export interface WorkspaceSummary {
147
219
  }[];
148
220
  created_at: string;
149
221
  }
222
+ export type MailboxEffectiveCapabilities = ("mail.read" | "mail.search" | "mail.auth.read" | "mail.seen.write" | "mail.lifecycle.write" | "mail.delete.permanent" | "draft.create" | "mail.submit" | "conversation.read" | "conversation.assign" | "conversation.note" | "conversation.close" | "mailbox.manage" | "routing.manage" | "delivery.manage" | "mail.client.connect" | "mail.credentials.create_self" | "mail.credentials.revoke_self" | "workspace.members.manage" | "workspace.billing.manage")[];
150
223
  export interface WorkspaceDetail {
151
224
  id: string;
152
225
  name: string;
153
226
  role: "owner" | "admin" | "member";
154
227
  personal: boolean;
155
- members: {
156
- id?: string;
157
- email?: string;
158
- role?: "owner" | "admin" | "member";
159
- joined_at?: string;
160
- mailbox_grants?: {
228
+ members: ({
229
+ id: string;
230
+ principal_id: string;
231
+ email: string;
232
+ role: "owner" | "admin" | "member";
233
+ joined_at: string;
234
+ mailbox_grants: ({
161
235
  mailbox_id?: string;
162
236
  address?: string;
163
237
  role?: "viewer" | "responder" | "manager";
164
- }[];
165
- }[];
238
+ })[];
239
+ })[];
166
240
  /** Visible only to workspace owners and admins. */
167
- invitations: {
241
+ invitations: ({
168
242
  id?: string;
169
243
  email?: string;
170
244
  role?: "admin" | "member";
171
245
  expires_at?: string;
172
- }[];
173
- mailboxes: {
246
+ })[];
247
+ mailboxes: ({
174
248
  id?: string;
175
249
  address?: string;
176
250
  name?: string | null;
177
- }[];
251
+ })[];
178
252
  ownership: {
179
253
  owner_membership_id: string | null;
180
254
  pending_transfer: {
@@ -196,12 +270,91 @@ export interface ConversationState {
196
270
  label?: string;
197
271
  } | null;
198
272
  version: number;
273
+ /** Generation used by stale-safe guarded replies */
274
+ reply_version: number;
275
+ last_reply: {
276
+ actor: {
277
+ type: string;
278
+ id: string;
279
+ label: string;
280
+ };
281
+ at: string;
282
+ } | null;
199
283
  note_count: number;
200
284
  assigned_to_me?: boolean;
201
285
  last_activity_at: string;
202
286
  created_at: string;
203
287
  updated_at: string;
204
288
  }
289
+ export interface ConversationCoordinationSnapshot {
290
+ conversation_id: string;
291
+ mailbox_id: string;
292
+ thread_key: string;
293
+ reply_version: number;
294
+ last_reply: {
295
+ actor: {
296
+ type: string;
297
+ id: string;
298
+ label: string;
299
+ };
300
+ at: string;
301
+ } | null;
302
+ presence: ({
303
+ actor: {
304
+ type: string;
305
+ id: string;
306
+ label: string;
307
+ };
308
+ client_id: string;
309
+ mode: "viewing" | "composing";
310
+ expires_at: string;
311
+ })[];
312
+ compose_lease: {
313
+ lease_id: string;
314
+ holder: {
315
+ type: string;
316
+ id: string;
317
+ label: string;
318
+ };
319
+ client_id: string;
320
+ base_reply_version: number;
321
+ version: number;
322
+ expires_at: string;
323
+ held_by_me: boolean;
324
+ } | null;
325
+ server_time: string;
326
+ heartbeat_after_ms: 15000;
327
+ expires_after_ms: 45000;
328
+ }
329
+ export interface ConversationWorkItem {
330
+ mailbox_id: string;
331
+ thread_key: string;
332
+ thread_aliases: string[];
333
+ subject: string | null;
334
+ status: "open" | "waiting" | "closed";
335
+ assignee: {
336
+ type: "member" | "token" | "agent";
337
+ id: string;
338
+ label: string | null;
339
+ } | null;
340
+ assigned_to_me: boolean;
341
+ persisted: boolean;
342
+ conversation_id: string | null;
343
+ version: number | null;
344
+ note_count: number;
345
+ scanned_message_count: number;
346
+ scanned_unread_count: number;
347
+ first_message_at: string | null;
348
+ last_activity_at: string;
349
+ latest_message: {
350
+ id: string;
351
+ direction: string;
352
+ from: string;
353
+ to: string;
354
+ preview: string | null;
355
+ created_at: string;
356
+ } | null;
357
+ }
205
358
  export interface ConversationNote {
206
359
  id: string;
207
360
  author: {
@@ -225,6 +378,171 @@ export interface MailActivity {
225
378
  metadata: Record<string, unknown>;
226
379
  created_at: string;
227
380
  }
381
+ export interface MailboxChange {
382
+ /** Monotonic sequence serialized as a string */
383
+ sequence: string;
384
+ type: string;
385
+ resource_type: string;
386
+ resource_id: string | null;
387
+ resource_version: number | null;
388
+ actor: {
389
+ type: string;
390
+ id: string;
391
+ label: string | null;
392
+ } | null;
393
+ operation_id: string | null;
394
+ data: Record<string, unknown>;
395
+ created_at: string;
396
+ }
397
+ export interface DomainBrief {
398
+ id: string;
399
+ domain: string;
400
+ depth: "instant" | "deep";
401
+ status: "ready" | "degraded" | "failed";
402
+ summary: string;
403
+ registration: {
404
+ state: "available" | "registered" | "reserved" | "unknown";
405
+ registrar: string | null;
406
+ createdAt: string | null;
407
+ expiresAt: string | null;
408
+ daysUntilExpiry: number | null;
409
+ };
410
+ website: {
411
+ state: "active_business" | "active_noncommercial" | "parked_for_sale" | "parked" | "redirected" | "dormant" | "holding_page" | "protected" | "unreachable" | "unknown";
412
+ title: string | null;
413
+ description: string | null;
414
+ finalUrl: string | null;
415
+ favicon: string | null;
416
+ canonicalUrl: string | null;
417
+ };
418
+ /** Public identity inferred from the current site. Associated operators do not imply registration ownership. */
419
+ identity: {
420
+ name: string | null;
421
+ legalName: string | null;
422
+ pitch: string | null;
423
+ category: string | null;
424
+ audience: string | null;
425
+ language: string | null;
426
+ logo: string | null;
427
+ entities: ({
428
+ name: string;
429
+ legalName: string | null;
430
+ type: "company" | "brand" | "organization" | "public_person" | "unknown";
431
+ relationship: "presented_brand" | "current_operator" | "redirect_destination" | "historical_operator" | "registrant";
432
+ confidence: "high" | "medium" | "low";
433
+ website: string | null;
434
+ sameAs: string[];
435
+ evidenceIds: string[];
436
+ })[];
437
+ };
438
+ activity: {
439
+ state: "active" | "operational" | "dormant" | "inactive" | "unknown";
440
+ rationale: string;
441
+ observedAt: string;
442
+ evidenceIds: string[];
443
+ };
444
+ history: {
445
+ registeredAt: string | null;
446
+ registrationUpdatedAt: string | null;
447
+ firstArchiveAt: string | null;
448
+ latestArchiveAt: string | null;
449
+ currentIdentityFirstSeenAt: string | null;
450
+ snapshots: ({
451
+ capturedAt: string;
452
+ url: string;
453
+ title: string | null;
454
+ description: string | null;
455
+ evidenceIds: string[];
456
+ })[];
457
+ changes: ({
458
+ detectedAt: string;
459
+ type: "identity" | "content" | "redirect" | "registration";
460
+ summary: string;
461
+ evidenceIds: string[];
462
+ })[];
463
+ };
464
+ infrastructure: {
465
+ nameservers: string[];
466
+ mailProviders: string[];
467
+ dnssec: boolean;
468
+ mail: {
469
+ status: "active" | "inactive" | "unknown";
470
+ provider: string | null;
471
+ providerKind: "managed" | "self_hosted" | "gateway" | "custom" | "unknown";
472
+ security: "hardened" | "established" | "basic" | "exposed" | "unknown";
473
+ businessCriticality: "high" | "medium" | "low" | "unknown";
474
+ spf: boolean | null;
475
+ dmarc: "reject" | "quarantine" | "monitor" | "none" | "unknown";
476
+ mtaSts: boolean | null;
477
+ tlsReporting: boolean | null;
478
+ bimi: boolean | null;
479
+ };
480
+ };
481
+ market: {
482
+ listed: boolean;
483
+ marketplace: string | null;
484
+ listingUrl: string | null;
485
+ askingPriceUsd: number | null;
486
+ };
487
+ /** Redacted contact-channel metadata. Raw addresses are never returned. */
488
+ contactability: {
489
+ state: "direct" | "indirect" | "none_found" | "unknown";
490
+ channelType: "registration_email" | null;
491
+ source: string | null;
492
+ confidence: "high" | "medium" | "low" | null;
493
+ };
494
+ acquisitionOutlook: {
495
+ state: "promising" | "possible" | "difficult" | "unknown";
496
+ rationale: string;
497
+ };
498
+ recommendation: {
499
+ action: "register" | "buy_now" | "negotiate_listing" | "private_broker" | "backorder" | "watch" | "choose_alternative";
500
+ rationale: string;
501
+ };
502
+ /** Legacy aggregate. Use coverage instead. */
503
+ completeness: number;
504
+ /** Evidence coverage, separate from confidence and freshness. */
505
+ coverage: {
506
+ score: number;
507
+ sections: {
508
+ registration: "complete" | "partial" | "missing";
509
+ currentUse: "complete" | "partial" | "missing";
510
+ identity: "complete" | "partial" | "missing";
511
+ infrastructure: "complete" | "partial" | "missing";
512
+ history: "complete" | "partial" | "missing";
513
+ market: "complete" | "partial" | "missing";
514
+ };
515
+ missing: string[];
516
+ };
517
+ analyzedAt: string;
518
+ staleAt: string;
519
+ analysisVersion: string;
520
+ evidence: ({
521
+ id: string;
522
+ kind: "registry" | "dns" | "website" | "content" | "archive" | "entity" | "market" | "contact";
523
+ claimKey: string;
524
+ label: string;
525
+ value: string;
526
+ source: string;
527
+ sourceUrl?: string;
528
+ confidence: "high" | "medium" | "low";
529
+ visibility: "public" | "redacted";
530
+ capturedAt: string;
531
+ })[];
532
+ warnings: string[];
533
+ createdAt: string;
534
+ updatedAt: string;
535
+ }
536
+ export interface PublicDomainProfile {
537
+ domain: string;
538
+ canonicalPath: string;
539
+ brief: DomainBrief;
540
+ freshness: "fresh" | "stale";
541
+ qualityScore: number;
542
+ /** True only for fresh, deep, substantive profiles with sufficient public evidence. */
543
+ indexable: boolean;
544
+ indexabilityReasons: ("needs_deep_analysis" | "analysis_not_ready" | "stale_analysis" | "insufficient_coverage" | "insufficient_public_evidence" | "thin_domain_identity")[];
545
+ }
228
546
  export interface Backorder {
229
547
  id?: string;
230
548
  domain?: string;
@@ -302,13 +620,13 @@ export interface Negotiation {
302
620
  deal_id?: string | null;
303
621
  created_at?: string;
304
622
  /** The negotiation thread, oldest first */
305
- offers?: {
623
+ offers?: ({
306
624
  from?: "you" | "counterparty";
307
625
  kind?: "offer" | "counter" | "accept" | "decline";
308
626
  amount?: number | null;
309
627
  message?: string | null;
310
628
  at?: string;
311
- }[];
629
+ })[];
312
630
  }
313
631
  export interface DomainDetail {
314
632
  domain: string;
@@ -416,6 +734,10 @@ export interface RegistrantContact {
416
734
  export interface AccountInfo {
417
735
  id: string;
418
736
  email: string;
737
+ /** Active personal Domani plan key */
738
+ plan: string;
739
+ /** Distinct active Mailzero plan keys on workspaces the user can access */
740
+ workspace_plans: string[];
419
741
  /** Whether the user has a card on file (required before buying domains) */
420
742
  has_payment_method: boolean;
421
743
  /** Whether the user has set WHOIS contact info (required before purchasing domains) */
@@ -434,6 +756,37 @@ export interface AccountInfo {
434
756
  token_count: number;
435
757
  created_at: string;
436
758
  }
759
+ export interface ActivationProjection {
760
+ version: 2;
761
+ account_created_at: string;
762
+ entry: {
763
+ brand: string;
764
+ surface: string;
765
+ intent: string;
766
+ };
767
+ milestones: {
768
+ mailbox_created_at: string | null;
769
+ first_message_sent_at: string | null;
770
+ first_message_received_at: string | null;
771
+ custom_domain_activated_at: string | null;
772
+ programmatic_action_completed_at: string | null;
773
+ first_webhook_delivery_succeeded_at: string | null;
774
+ };
775
+ status: "first_run" | "setup_active" | "mail_active" | "mail_loop_complete" | "domain_active" | "programmatic_active" | "multi_surface_active";
776
+ recommended_actions: ({
777
+ id: string;
778
+ label: string;
779
+ priority: number;
780
+ surfaces: ("web" | "mobile" | "cli" | "mcp")[];
781
+ href?: string;
782
+ operation: string;
783
+ })[];
784
+ available_paths: string[];
785
+ dismissed_version: number;
786
+ pending_claim: {
787
+ slug: string;
788
+ } | null;
789
+ }
437
790
  export declare class Domani {
438
791
  private apiKey;
439
792
  private baseUrl;
@@ -443,6 +796,10 @@ export declare class Domani {
443
796
  query?: Record<string, unknown>;
444
797
  body?: unknown;
445
798
  }): Promise<T>;
799
+ /** Accept an access or ownership offer (POST /api/workspaces/access/offers/accept) */
800
+ acceptWorkspaceAccessOffer(body: {
801
+ token: string;
802
+ }): Promise<unknown>;
446
803
  /** Accept a workspace invitation (POST /api/workspaces/invitations/accept) */
447
804
  acceptWorkspaceInvitation(body: {
448
805
  token: string;
@@ -589,14 +946,14 @@ export declare class Domani {
589
946
  risk: "low" | "medium" | "high" | "blocked";
590
947
  score: number;
591
948
  authentication_message?: boolean;
592
- checks: {
949
+ checks: ({
593
950
  id: string;
594
951
  category: "transport_safety" | "credential_safety" | "reputation" | "content_quality" | "reliability";
595
952
  status: "pass" | "warning" | "blocked";
596
953
  message: string;
597
954
  fix?: string;
598
955
  evidence?: string[];
599
- }[];
956
+ })[];
600
957
  blocked_reasons: string[];
601
958
  warnings: string[];
602
959
  override_used?: boolean;
@@ -712,6 +1069,14 @@ export declare class Domani {
712
1069
  hint?: string;
713
1070
  next_steps?: string[];
714
1071
  }>;
1072
+ /** Analyze a domain and persist an evidence-backed brief (POST /api/domain-briefs) */
1073
+ createDomainBrief(body: {
1074
+ domain: string;
1075
+ depth?: "instant" | "deep";
1076
+ refresh?: boolean;
1077
+ }): Promise<{
1078
+ brief: DomainBrief;
1079
+ }>;
715
1080
  /** List a domain for sale (PUT /api/domains/{domain}/for-sale) */
716
1081
  createListing(domain: string, body: {
717
1082
  price: number;
@@ -733,10 +1098,23 @@ export declare class Domani {
733
1098
  slug: string;
734
1099
  name?: string;
735
1100
  }): Promise<{
736
- id?: string;
737
- address?: string;
738
- slug?: string;
739
- domain?: string;
1101
+ id: string;
1102
+ address: string;
1103
+ name: string | null;
1104
+ slug: string;
1105
+ domain: string;
1106
+ kind: string;
1107
+ workspace_id: string | null;
1108
+ access_role: "viewer" | "responder" | "manager";
1109
+ effective_capabilities: MailboxEffectiveCapabilities;
1110
+ collaboration_enabled: boolean;
1111
+ message_count: number;
1112
+ webhook_url: string | null;
1113
+ header_names: string[];
1114
+ forward_to: string | null;
1115
+ signing_secret?: string | null;
1116
+ created_at: string;
1117
+ hint: string;
740
1118
  }>;
741
1119
  /** Create a mailbox (POST /api/emails) */
742
1120
  createMailboxByAddress(body: {
@@ -746,15 +1124,39 @@ export declare class Domani {
746
1124
  kind?: "api" | "hosted";
747
1125
  workspace_id?: string;
748
1126
  }): Promise<{
749
- id?: string;
750
- address?: string;
1127
+ id: string;
1128
+ address: string;
751
1129
  name?: string | null;
752
1130
  domain?: string;
753
1131
  slug?: string;
754
- workspace_id?: string | null;
1132
+ kind: string;
1133
+ workspace_id: string | null;
1134
+ access_role?: "viewer" | "responder" | "manager";
1135
+ effective_capabilities?: MailboxEffectiveCapabilities;
1136
+ collaboration_enabled?: boolean;
1137
+ message_count?: number;
755
1138
  webhook_url?: string | null;
1139
+ header_names?: string[];
756
1140
  forward_to?: string | null;
757
- signing_secret?: string;
1141
+ signing_secret?: string | null;
1142
+ host_id?: string;
1143
+ dns_records?: DnsRecord[];
1144
+ dns_status?: "published" | "manual";
1145
+ receiving_status?: "pending";
1146
+ sending_status?: "pending" | "unavailable";
1147
+ sending_error?: {
1148
+ code?: "MAIL_DOMAIN_CAPACITY_EXHAUSTED" | "MAIL_PROVIDER_ERROR";
1149
+ retryable?: boolean;
1150
+ };
1151
+ client_settings?: Record<string, unknown>;
1152
+ credential?: {
1153
+ id?: string;
1154
+ label?: string;
1155
+ password?: string;
1156
+ };
1157
+ storage_quota_bytes?: number;
1158
+ created_at?: string;
1159
+ hint: string;
758
1160
  }>;
759
1161
  /** Create an app password (hosted) (POST /api/emails/{address}/credentials) */
760
1162
  createMailboxCredential(address: string, body?: {
@@ -794,12 +1196,14 @@ export declare class Domani {
794
1196
  createWebhook(body: {
795
1197
  url: string;
796
1198
  events: string[];
1199
+ headers?: Record<string, unknown>;
797
1200
  }): Promise<{
798
1201
  id?: string;
799
1202
  url?: string;
800
1203
  events?: string[];
801
1204
  secret?: string;
802
1205
  active?: boolean;
1206
+ header_names?: string[];
803
1207
  created_at?: string;
804
1208
  hint?: string;
805
1209
  }>;
@@ -807,6 +1211,14 @@ export declare class Domani {
807
1211
  createWorkspace(body: {
808
1212
  name: string;
809
1213
  }): Promise<unknown>;
1214
+ /** Offer mailbox access or workspace ownership (POST /api/workspaces/{id}/access/offers) */
1215
+ createWorkspaceAccessOffer(id: string, body: {
1216
+ email: string;
1217
+ grants: Record<string, unknown>[];
1218
+ ownership_disposition?: "unchanged" | "claim";
1219
+ creator_disposition?: "stay" | "stay_admin" | "leave";
1220
+ billing_disposition?: "unchanged" | "sponsor" | "transfer";
1221
+ }): Promise<unknown>;
810
1222
  /** Start Mailzero workspace checkout (POST /api/workspaces/{id}/billing/checkout) */
811
1223
  createWorkspaceCheckout(id: string, body: {
812
1224
  plan: "mail_solo" | "mail_team" | "mail_business";
@@ -841,9 +1253,8 @@ export declare class Domani {
841
1253
  /** Bulk delete messages (POST /api/emails/{address}/messages/delete) */
842
1254
  deleteMessagesByAddress(address: string, body?: {
843
1255
  message_ids: string[];
844
- }): Promise<{
845
- count?: number;
846
- }>;
1256
+ idempotency_key?: string;
1257
+ }): Promise<LegacyMailboxOperationReceipt>;
847
1258
  /** Delete webhook (DELETE /api/webhooks/{id}) */
848
1259
  deleteWebhook(id: string): Promise<{
849
1260
  success?: boolean;
@@ -879,6 +1290,8 @@ export declare class Domani {
879
1290
  }>;
880
1291
  /** Get current account details (GET /api/me) */
881
1292
  getAccount(): Promise<AccountInfo>;
1293
+ /** Get truthful activation state and recommended next actions (GET /api/me/activation) */
1294
+ getActivation(): Promise<ActivationProjection>;
882
1295
  /** Get EPP auth code (GET /api/domains/{domain}/auth-code) */
883
1296
  getAuthCode(domain: string): Promise<{
884
1297
  domain: string;
@@ -911,6 +1324,11 @@ export declare class Domani {
911
1324
  has_contact?: boolean;
912
1325
  contact?: RegistrantContact;
913
1326
  }>;
1327
+ /** Get active viewers, composers, and the compose lease (GET /api/email/collaboration/coordination) */
1328
+ getConversationCoordination(query?: {
1329
+ mailbox_id: string;
1330
+ thread_key: string;
1331
+ }): Promise<ConversationCoordinationSnapshot>;
914
1332
  /** Get deal detail with timeline (GET /api/deals/{id}) */
915
1333
  getDeal(id: string): Promise<{
916
1334
  deal?: {
@@ -927,11 +1345,11 @@ export declare class Domani {
927
1345
  transfer_deadline?: string | null;
928
1346
  completed_at?: string | null;
929
1347
  created_at?: string;
930
- events?: {
1348
+ events?: ({
931
1349
  status?: string;
932
1350
  detail?: string | null;
933
1351
  created_at?: string;
934
- }[];
1352
+ })[];
935
1353
  };
936
1354
  hint?: string;
937
1355
  }>;
@@ -951,12 +1369,21 @@ export declare class Domani {
951
1369
  enabled?: boolean;
952
1370
  records?: DsRecord[];
953
1371
  }>;
1372
+ /** Get a previously generated domain brief (GET /api/domain-briefs/{id}) */
1373
+ getDomainBrief(id: string): Promise<{
1374
+ brief: DomainBrief;
1375
+ }>;
954
1376
  /** Check email DNS status (GET /api/domains/{domain}/email/status) */
955
1377
  getDomainEmailStatus(domain: string): Promise<{
956
1378
  domain?: string;
1379
+ enabled?: boolean;
957
1380
  verified?: boolean;
1381
+ receiving_verified?: boolean;
1382
+ sending_configured?: boolean;
1383
+ sending_verified?: boolean;
958
1384
  records?: DnsRecord[];
959
1385
  mailbox_count?: number;
1386
+ hint?: string;
960
1387
  }>;
961
1388
  /** Get detailed information about a domain you own (GET /api/domains/{domain}) */
962
1389
  getDomainInfo(domain: string): Promise<DomainDetail>;
@@ -1022,18 +1449,18 @@ export declare class Domani {
1022
1449
  placement: {
1023
1450
  available?: boolean;
1024
1451
  last_checked_at?: string | null;
1025
- providers?: {
1452
+ providers?: ({
1026
1453
  provider?: "gmail" | "outlook" | "yahoo";
1027
- status?: "inbox" | "spam" | "missing" | "not_tested";
1028
- }[];
1454
+ status?: "inbox" | "spam" | "missing" | "error" | "not_tested";
1455
+ })[];
1029
1456
  note?: string;
1030
1457
  };
1031
- actions: {
1458
+ actions: ({
1032
1459
  id?: string;
1033
1460
  severity?: "info" | "warning" | "critical";
1034
1461
  title?: string;
1035
1462
  detail?: string;
1036
- }[];
1463
+ })[];
1037
1464
  caveats?: string[];
1038
1465
  }>;
1039
1466
  /** Get mailbox avatar info (GET /api/emails/{address}/avatar) */
@@ -1053,6 +1480,7 @@ export declare class Domani {
1053
1480
  kind?: string;
1054
1481
  workspace_id?: string | null;
1055
1482
  access_role?: "viewer" | "responder" | "manager";
1483
+ effective_capabilities?: MailboxEffectiveCapabilities;
1056
1484
  webhook_url?: string | null;
1057
1485
  forward_to?: string | null;
1058
1486
  signing_secret?: string | null;
@@ -1084,14 +1512,18 @@ export declare class Domani {
1084
1512
  webhook_url?: string | null;
1085
1513
  signing_secret?: string | null;
1086
1514
  has_webhook?: boolean;
1515
+ header_names?: string[];
1087
1516
  hint?: string;
1088
1517
  }>;
1089
1518
  /** Get a message (GET /api/emails/{address}/messages/{id}) */
1090
1519
  getMessageByAddress(address: string, id: string): Promise<{
1091
1520
  id?: string;
1521
+ thread_key?: string;
1522
+ thread_aliases?: string[];
1092
1523
  message_id?: string | null;
1093
1524
  direction?: "in" | "out";
1094
1525
  from?: string;
1526
+ avatar_url?: string | null;
1095
1527
  to?: string;
1096
1528
  cc?: string | null;
1097
1529
  reply_to?: string | null;
@@ -1100,20 +1532,20 @@ export declare class Domani {
1100
1532
  html?: string | null;
1101
1533
  in_reply_to?: string | null;
1102
1534
  references?: string | null;
1103
- attachments?: {
1535
+ attachments?: ({
1104
1536
  filename?: string;
1105
1537
  content_type?: string;
1106
1538
  size?: number;
1107
1539
  url?: string | null;
1108
- }[];
1540
+ })[];
1109
1541
  status?: string;
1110
1542
  is_read?: boolean;
1111
1543
  read_at?: string | null;
1112
- events?: {
1544
+ events?: ({
1113
1545
  status?: string;
1114
1546
  detail?: Record<string, unknown> | null;
1115
1547
  created_at?: string;
1116
- }[];
1548
+ })[];
1117
1549
  created_at?: string;
1118
1550
  }>;
1119
1551
  /** Get nameservers for a domain (GET /api/domains/{domain}/nameservers) */
@@ -1129,13 +1561,13 @@ export declare class Domani {
1129
1561
  }>;
1130
1562
  /** Get notification preferences (GET /api/notifications/preferences) */
1131
1563
  getNotificationPreferences(): Promise<{
1132
- preferences?: {
1564
+ preferences?: ({
1133
1565
  category?: "domains" | "transfers" | "marketplace" | "email" | "inquiries";
1134
1566
  label?: string;
1135
1567
  description?: string;
1136
1568
  channel?: "in_app" | "email";
1137
1569
  enabled?: boolean;
1138
- }[];
1570
+ })[];
1139
1571
  expiry_alert_days?: number[];
1140
1572
  }>;
1141
1573
  /** Get parking analytics (GET /api/domains/{domain}/analytics) */
@@ -1149,11 +1581,11 @@ export declare class Domani {
1149
1581
  date?: string;
1150
1582
  views?: number;
1151
1583
  }[];
1152
- recent_inquiries?: {
1584
+ recent_inquiries?: ({
1153
1585
  email?: string;
1154
1586
  offer?: number | null;
1155
1587
  date?: string;
1156
- }[];
1588
+ })[];
1157
1589
  hint?: string;
1158
1590
  }>;
1159
1591
  /** Get marketplace payout status (GET /api/billing/connect) */
@@ -1163,6 +1595,10 @@ export declare class Domani {
1163
1595
  details_submitted?: boolean;
1164
1596
  balance_cents?: number;
1165
1597
  }>;
1598
+ /** Get a public domain profile (GET /api/domains/{domain}/profile) */
1599
+ getPublicDomainProfile(domain: string): Promise<{
1600
+ profile: PublicDomainProfile;
1601
+ }>;
1166
1602
  /** Get referral earnings and history (GET /api/referrals) */
1167
1603
  getReferrals(): Promise<{
1168
1604
  referral_code?: string;
@@ -1202,19 +1638,31 @@ export declare class Domani {
1202
1638
  getWebhookDeliveries(id: string, query?: {
1203
1639
  limit?: number;
1204
1640
  }): Promise<{
1205
- deliveries?: {
1641
+ deliveries?: ({
1206
1642
  id?: string;
1643
+ replay_of_id?: string | null;
1207
1644
  event_type?: string;
1208
1645
  status?: "pending" | "delivered" | "failed";
1209
1646
  http_status?: number | null;
1210
1647
  attempts?: number;
1211
1648
  last_error?: string | null;
1212
1649
  created_at?: string;
1213
- }[];
1650
+ })[];
1214
1651
  hint?: string;
1215
1652
  }>;
1216
1653
  /** Get workspace members and mailboxes (GET /api/workspaces/{id}) */
1217
1654
  getWorkspace(id: string): Promise<WorkspaceDetail>;
1655
+ /** Get the canonical workspace access graph (GET /api/workspaces/{id}/access) */
1656
+ getWorkspaceAccess(id: string): Promise<unknown>;
1657
+ /** Heartbeat viewing or composing presence (PUT /api/email/collaboration/coordination) */
1658
+ heartbeatConversationPresence(body: {
1659
+ mailbox_id: string;
1660
+ thread_key: string;
1661
+ client_id: string;
1662
+ subject?: string | null;
1663
+ mode: "viewing" | "composing";
1664
+ acquire_lease?: boolean;
1665
+ }): Promise<ConversationCoordinationSnapshot>;
1218
1666
  /** Import an external domain (POST /api/domains/import) */
1219
1667
  importDomain(body: {
1220
1668
  domain: string;
@@ -1244,7 +1692,7 @@ export declare class Domani {
1244
1692
  cursor?: string;
1245
1693
  type?: string;
1246
1694
  }): Promise<{
1247
- events?: {
1695
+ events?: ({
1248
1696
  id?: string;
1249
1697
  tokenId?: string | null;
1250
1698
  type?: string;
@@ -1252,7 +1700,7 @@ export declare class Domani {
1252
1700
  targetId?: string | null;
1253
1701
  metadata?: Record<string, unknown>;
1254
1702
  createdAt?: string;
1255
- }[];
1703
+ })[];
1256
1704
  next_cursor?: string | null;
1257
1705
  hint?: string;
1258
1706
  }>;
@@ -1284,7 +1732,7 @@ export declare class Domani {
1284
1732
  listConversationNotes(id: string): Promise<{
1285
1733
  notes: ConversationNote[];
1286
1734
  }>;
1287
- /** List shared inbox conversation state (GET /api/email/collaboration) */
1735
+ /** List persisted shared inbox state (GET /api/email/collaboration) */
1288
1736
  listConversationStates(query?: {
1289
1737
  mailbox_ids: string;
1290
1738
  status?: "open" | "waiting" | "closed";
@@ -1300,7 +1748,7 @@ export declare class Domani {
1300
1748
  limit?: number;
1301
1749
  cursor?: string;
1302
1750
  }): Promise<{
1303
- deals?: {
1751
+ deals?: ({
1304
1752
  id?: string;
1305
1753
  domain?: string;
1306
1754
  price?: number;
@@ -1311,7 +1759,7 @@ export declare class Domani {
1311
1759
  epp_deadline?: string | null;
1312
1760
  transfer_deadline?: string | null;
1313
1761
  created_at?: string;
1314
- }[];
1762
+ })[];
1315
1763
  has_more?: boolean;
1316
1764
  next_cursor?: string | null;
1317
1765
  }>;
@@ -1321,16 +1769,16 @@ export declare class Domani {
1321
1769
  }>;
1322
1770
  /** List email folders and counts (GET /api/emails/{address}/folders) */
1323
1771
  listEmailFoldersByAddress(address: string): Promise<{
1324
- folders?: {
1772
+ folders?: ({
1325
1773
  id?: "inbox" | "archive" | "sent" | "drafts" | "spam" | "trash";
1326
1774
  total?: number;
1327
1775
  unread?: number;
1328
- }[];
1329
- views?: {
1776
+ })[];
1777
+ views?: ({
1330
1778
  id?: "starred" | "all";
1331
1779
  total?: number;
1332
1780
  unread?: number;
1333
- }[];
1781
+ })[];
1334
1782
  capabilities?: Record<string, unknown>;
1335
1783
  }>;
1336
1784
  /** List emails (GET /api/emails/{address}/messages) */
@@ -1349,8 +1797,10 @@ export declare class Domani {
1349
1797
  attachments?: boolean;
1350
1798
  spam?: boolean;
1351
1799
  }): Promise<{
1352
- messages?: {
1800
+ messages?: ({
1353
1801
  id?: string;
1802
+ thread_key?: string;
1803
+ thread_aliases?: string[];
1354
1804
  message_id?: string | null;
1355
1805
  direction?: "in" | "out";
1356
1806
  folder?: "inbox" | "archive" | "sent" | "spam" | "trash";
@@ -1361,6 +1811,7 @@ export declare class Domani {
1361
1811
  spam_detected?: boolean;
1362
1812
  trashed_at?: string | null;
1363
1813
  from?: string;
1814
+ avatar_url?: string | null;
1364
1815
  to?: string;
1365
1816
  cc?: string | null;
1366
1817
  reply_to?: string | null;
@@ -1371,7 +1822,7 @@ export declare class Domani {
1371
1822
  status?: string;
1372
1823
  events?: Record<string, unknown>[];
1373
1824
  created_at?: string;
1374
- }[];
1825
+ })[];
1375
1826
  next_cursor?: string | null;
1376
1827
  }>;
1377
1828
  /** List your agent identities (GET /api/agents/identity) */
@@ -1382,7 +1833,7 @@ export declare class Domani {
1382
1833
  listInvoices(query?: {
1383
1834
  limit?: number;
1384
1835
  }): Promise<{
1385
- invoices?: {
1836
+ invoices?: ({
1386
1837
  id?: string;
1387
1838
  number?: string | null;
1388
1839
  status?: string;
@@ -1393,7 +1844,7 @@ export declare class Domani {
1393
1844
  created?: string;
1394
1845
  hosted_invoice_url?: string | null;
1395
1846
  invoice_pdf?: string | null;
1396
- }[];
1847
+ })[];
1397
1848
  has_more?: boolean;
1398
1849
  hint?: string;
1399
1850
  }>;
@@ -1406,10 +1857,22 @@ export declare class Domani {
1406
1857
  }[];
1407
1858
  hint?: string;
1408
1859
  }>;
1860
+ /** Incrementally synchronize one mailbox (GET /api/email/changes) */
1861
+ listMailboxChanges(query?: {
1862
+ mailbox_id: string;
1863
+ cursor?: string;
1864
+ limit?: number;
1865
+ }): Promise<{
1866
+ changes: MailboxChange[];
1867
+ next_cursor: string;
1868
+ has_more: boolean;
1869
+ requires_full_sync: boolean;
1870
+ reason?: "cursor_required" | "cursor_expired";
1871
+ }>;
1409
1872
  /** List app passwords (hosted) (GET /api/emails/{address}/credentials) */
1410
1873
  listMailboxCredentials(address: string): Promise<{
1411
1874
  mailbox?: string;
1412
- credentials?: {
1875
+ credentials?: ({
1413
1876
  id?: string;
1414
1877
  label?: string;
1415
1878
  created_at?: string;
@@ -1419,44 +1882,47 @@ export declare class Domani {
1419
1882
  id?: string;
1420
1883
  label?: string;
1421
1884
  } | null;
1422
- }[];
1885
+ })[];
1423
1886
  hint?: string;
1424
1887
  }>;
1425
1888
  /** List all mailboxes (GET /api/email) */
1426
1889
  listMailboxes(query?: {
1427
1890
  domain?: string;
1428
1891
  }): Promise<{
1429
- mailboxes?: {
1892
+ mailboxes?: ({
1430
1893
  id?: string;
1431
1894
  address?: string;
1432
1895
  slug?: string;
1433
1896
  domain?: string;
1434
1897
  message_count?: number;
1435
1898
  access_role?: "viewer" | "responder" | "manager";
1899
+ effective_capabilities?: MailboxEffectiveCapabilities;
1436
1900
  storage_quota_bytes?: number | null;
1437
1901
  storage_used_bytes?: number | null;
1438
1902
  storage_measured_at?: string | null;
1439
- }[];
1903
+ })[];
1440
1904
  }>;
1441
1905
  /** List all mailboxes (GET /api/emails) */
1442
1906
  listMailboxesByAddress(query?: {
1443
1907
  domain?: string;
1444
1908
  }): Promise<{
1445
- mailboxes?: {
1909
+ mailboxes?: ({
1446
1910
  id?: string;
1447
1911
  address?: string;
1448
1912
  slug?: string;
1449
1913
  domain?: string;
1450
1914
  message_count?: number;
1451
1915
  webhook_url?: string | null;
1916
+ header_names?: string[];
1452
1917
  forward_to?: string | null;
1453
1918
  workspace_id?: string | null;
1454
1919
  access_role?: "viewer" | "responder" | "manager";
1920
+ effective_capabilities?: MailboxEffectiveCapabilities;
1455
1921
  collaboration_enabled?: boolean;
1456
1922
  storage_quota_bytes?: number | null;
1457
1923
  storage_used_bytes?: number | null;
1458
1924
  storage_measured_at?: string | null;
1459
- }[];
1925
+ })[];
1460
1926
  }>;
1461
1927
  /** List inbound mail rules (GET /api/emails/{address}/rules) */
1462
1928
  listMailRules(address: string): Promise<{
@@ -1464,6 +1930,20 @@ export declare class Domani {
1464
1930
  rules?: MailRule[];
1465
1931
  hint?: string;
1466
1932
  }>;
1933
+ /** List actionable mailbox conversations (GET /api/email/work-queue) */
1934
+ listMailWorkQueue(query?: {
1935
+ mailbox_ids: string;
1936
+ status?: "open" | "waiting" | "closed";
1937
+ assigned?: "mine" | "unassigned" | "all";
1938
+ limit?: number;
1939
+ scan_limit?: number;
1940
+ }): Promise<{
1941
+ items: ConversationWorkItem[];
1942
+ returned: number;
1943
+ scanned_messages: number;
1944
+ partial: boolean;
1945
+ scan_limit_per_mailbox: number;
1946
+ }>;
1467
1947
  /** List your negotiations (GET /api/negotiations) */
1468
1948
  listNegotiations(query?: {
1469
1949
  role?: "buyer" | "seller";
@@ -1476,7 +1956,7 @@ export declare class Domani {
1476
1956
  limit?: number;
1477
1957
  cursor?: string;
1478
1958
  }): Promise<{
1479
- notifications?: {
1959
+ notifications?: ({
1480
1960
  id?: string;
1481
1961
  type?: string;
1482
1962
  title?: string;
@@ -1484,7 +1964,7 @@ export declare class Domani {
1484
1964
  action_url?: string | null;
1485
1965
  read?: boolean;
1486
1966
  created_at?: string;
1487
- }[];
1967
+ })[];
1488
1968
  has_more?: boolean;
1489
1969
  next_cursor?: string | null;
1490
1970
  }>;
@@ -1493,12 +1973,12 @@ export declare class Domani {
1493
1973
  cursor?: string;
1494
1974
  limit?: number;
1495
1975
  }): Promise<{
1496
- suppressions?: {
1976
+ suppressions?: ({
1497
1977
  address?: string;
1498
1978
  reason?: "hard_bounce" | "complaint" | "manual";
1499
1979
  source?: "resend" | "api";
1500
1980
  created_at?: string;
1501
- }[];
1981
+ })[];
1502
1982
  next_cursor?: string | null;
1503
1983
  hint?: string;
1504
1984
  }>;
@@ -1545,6 +2025,7 @@ export declare class Domani {
1545
2025
  id?: string;
1546
2026
  url?: string;
1547
2027
  events?: string[];
2028
+ header_names?: string[];
1548
2029
  active?: boolean;
1549
2030
  created_at?: string;
1550
2031
  }[];
@@ -1578,9 +2059,8 @@ export declare class Domani {
1578
2059
  markMessagesReadByAddress(address: string, body?: {
1579
2060
  message_ids: string[];
1580
2061
  read: boolean;
1581
- }): Promise<{
1582
- count?: number;
1583
- }>;
2062
+ idempotency_key?: string;
2063
+ }): Promise<LegacyMailboxOperationReceipt>;
1584
2064
  /** Mark notification as read (PATCH /api/notifications/{id}) */
1585
2065
  markNotificationRead(id: string, body: {
1586
2066
  read: boolean;
@@ -1650,12 +2130,20 @@ export declare class Domani {
1650
2130
  slug?: string;
1651
2131
  name?: string;
1652
2132
  webhook_url?: string;
2133
+ webhook_headers?: {
2134
+ Authorization?: string;
2135
+ "X-API-Key"?: string;
2136
+ };
1653
2137
  webhook_events?: string[];
1654
2138
  payment_method?: "card" | "usdc" | "balance";
1655
2139
  payment_tx?: string;
1656
2140
  payment_chain?: "base" | "ethereum";
1657
2141
  years?: number;
1658
- }): Promise<unknown>;
2142
+ }): Promise<ProvisionAgentResult>;
2143
+ /** Refresh a domain brief from live sources (POST /api/domain-briefs/{id}/refresh) */
2144
+ refreshDomainBrief(id: string): Promise<{
2145
+ brief: DomainBrief;
2146
+ }>;
1659
2147
  /** Create a new account (POST /api/auth/register) */
1660
2148
  registerUser(body: {
1661
2149
  email: string;
@@ -1669,6 +2157,13 @@ export declare class Domani {
1669
2157
  email?: string;
1670
2158
  };
1671
2159
  }>;
2160
+ /** Release this client's presence and compose lease (DELETE /api/email/collaboration/coordination) */
2161
+ releaseConversationPresence(body: {
2162
+ mailbox_id: string;
2163
+ thread_key: string;
2164
+ client_id: string;
2165
+ lease_id?: string;
2166
+ }): Promise<ConversationCoordinationSnapshot>;
1672
2167
  /** Release an agent identity (DELETE /api/agents/identity/{slug}) */
1673
2168
  releaseIdentity(slug: string): Promise<{
1674
2169
  success?: boolean;
@@ -1697,6 +2192,7 @@ export declare class Domani {
1697
2192
  webhook_url?: string | null;
1698
2193
  signing_secret?: string | null;
1699
2194
  has_webhook?: boolean;
2195
+ header_names?: string[];
1700
2196
  hint?: string;
1701
2197
  }>;
1702
2198
  /** Remove an inbound mail rule (DELETE /api/emails/{address}/rules/{ruleId}) */
@@ -1729,23 +2225,52 @@ export declare class Domani {
1729
2225
  payment_method: string;
1730
2226
  payment_tx?: string;
1731
2227
  }>;
2228
+ /** Replay a webhook delivery (POST /api/webhooks/{id}/deliveries/{deliveryId}/replay) */
2229
+ replayWebhookDelivery(id: string, deliveryId: string, body: {
2230
+ idempotency_key: string;
2231
+ }): Promise<{
2232
+ delivery_id: string;
2233
+ original_delivery_id: string;
2234
+ event_type: string;
2235
+ status: "pending" | "delivered" | "failed";
2236
+ http_status?: number | null;
2237
+ attempts: number;
2238
+ idempotency_key: string;
2239
+ idempotent_replay: boolean;
2240
+ created_at: string;
2241
+ hint?: string;
2242
+ }>;
1732
2243
  /** Reply to a message (POST /api/emails/{address}/messages/{id}/reply) */
1733
2244
  replyToMessageByAddress(address: string, id: string, body?: {
1734
2245
  text?: string;
1735
2246
  html?: string;
1736
2247
  cc?: string | string[];
1737
2248
  all?: boolean;
2249
+ idempotency_key?: string;
2250
+ coordination?: {
2251
+ thread_key?: string;
2252
+ client_id: string;
2253
+ lease_id: string;
2254
+ expected_reply_version: number;
2255
+ };
1738
2256
  }): Promise<{
1739
2257
  id?: string;
1740
2258
  message_id?: string;
1741
2259
  from?: string;
1742
2260
  to?: string;
1743
2261
  status?: string;
2262
+ reply_version?: number;
1744
2263
  }>;
1745
2264
  /** Request a workspace ownership transfer (POST /api/workspaces/{id}/ownership-transfer) */
1746
2265
  requestWorkspaceOwnershipTransfer(id: string, body: {
1747
2266
  membership_id: string;
1748
2267
  }): Promise<unknown>;
2268
+ /** Research or refresh a public domain profile (POST /api/domains/{domain}/profile) */
2269
+ researchPublicDomainProfile(domain: string, query?: {
2270
+ depth?: "instant" | "deep";
2271
+ }): Promise<{
2272
+ profile: PublicDomainProfile;
2273
+ }>;
1749
2274
  /** Resend contact email verification (POST /api/me/resend-verification) */
1750
2275
  resendEmailVerification(body?: {
1751
2276
  email?: string;
@@ -1803,6 +2328,10 @@ export declare class Domani {
1803
2328
  revokeToken(id: string): Promise<{
1804
2329
  success?: boolean;
1805
2330
  }>;
2331
+ /** Revoke an access grant and its credentials (DELETE /api/workspaces/{id}/access/grants/{grantId}) */
2332
+ revokeWorkspaceAccess(id: string, grantId: string, body?: {
2333
+ expected_version?: number;
2334
+ }): Promise<unknown>;
1806
2335
  /** Revoke a pending invitation (DELETE /api/workspaces/{id}/invitations/{invitationId}) */
1807
2336
  revokeWorkspaceInvitation(id: string, invitationId: string): Promise<unknown>;
1808
2337
  /** Revoke a pending ownership transfer (DELETE /api/workspaces/{id}/ownership-transfer/{transferId}) */
@@ -1858,6 +2387,12 @@ export declare class Domani {
1858
2387
  in_reply_to?: string;
1859
2388
  references?: string;
1860
2389
  idempotency_key?: string;
2390
+ coordination?: {
2391
+ thread_key: string;
2392
+ client_id: string;
2393
+ lease_id: string;
2394
+ expected_reply_version: number;
2395
+ };
1861
2396
  allow_risky_content?: boolean;
1862
2397
  attachments?: {
1863
2398
  content: string;
@@ -1912,11 +2447,13 @@ export declare class Domani {
1912
2447
  /** Set mailbox webhook (PUT /api/emails/{address}/webhook) */
1913
2448
  setMailboxWebhook(address: string, body: {
1914
2449
  url: string;
2450
+ headers?: Record<string, unknown>;
1915
2451
  }): Promise<{
1916
2452
  address?: string;
1917
2453
  webhook_url?: string;
1918
2454
  signing_secret?: string;
1919
2455
  has_webhook?: boolean;
2456
+ header_names?: string[];
1920
2457
  hint?: string;
1921
2458
  }>;
1922
2459
  /** Set nameservers for a domain (PUT /api/domains/{domain}/nameservers) */
@@ -1943,9 +2480,27 @@ export declare class Domani {
1943
2480
  domain?: string;
1944
2481
  status?: "configured" | "already_configured";
1945
2482
  verified_at?: string | null;
2483
+ receiving_verified?: boolean;
2484
+ sending_configured?: boolean;
2485
+ sending_verified?: boolean;
1946
2486
  records?: DnsRecord[];
1947
2487
  hint?: string;
1948
2488
  }>;
2489
+ /** Plan or apply one access grant (PUT /api/workspaces/{id}/access) */
2490
+ setWorkspaceAccess(id: string, body: {
2491
+ mode: "plan" | "apply";
2492
+ subject: Record<string, unknown>;
2493
+ resource: Record<string, unknown>;
2494
+ profile: "viewer" | "responder" | "manager" | "draft_only" | "mail_client";
2495
+ policy?: {
2496
+ expires_at?: string | null;
2497
+ recipient_domains?: string[];
2498
+ max_recipients_per_message?: number;
2499
+ require_approval_for?: string[];
2500
+ };
2501
+ expected_version?: number;
2502
+ reason?: string;
2503
+ }): Promise<unknown>;
1949
2504
  /** Capture a DNS snapshot (POST /api/domains/{domain}/dns/snapshot) */
1950
2505
  snapshotDns(domain: string, body?: {
1951
2506
  extra_subdomains?: string[];
@@ -1977,6 +2532,24 @@ export declare class Domani {
1977
2532
  checked: number;
1978
2533
  iterations: number;
1979
2534
  }>;
2535
+ /** Create or replace a flat access group (PUT /api/workspaces/{id}/access/groups) */
2536
+ syncAccessGroup(id: string, body: {
2537
+ id?: string;
2538
+ name: string;
2539
+ description?: string | null;
2540
+ principals: ({
2541
+ type: "human" | "agent" | "service" | "token";
2542
+ id: string;
2543
+ label: string;
2544
+ })[];
2545
+ }): Promise<unknown>;
2546
+ /** Create or replace an explicit mailbox collection (PUT /api/workspaces/{id}/access/collections) */
2547
+ syncMailboxCollection(id: string, body: {
2548
+ id?: string;
2549
+ name: string;
2550
+ description?: string | null;
2551
+ mailbox_ids: string[];
2552
+ }): Promise<unknown>;
1980
2553
  /** Test mailbox webhook (POST /api/emails/{address}/webhook/test) */
1981
2554
  testMailboxWebhook(address: string): Promise<{
1982
2555
  address?: string;
@@ -2001,10 +2574,18 @@ export declare class Domani {
2001
2574
  preferred_payment_method?: string | null;
2002
2575
  hint?: string;
2003
2576
  }>;
2577
+ /** Dismiss or restore first-run guidance (PUT /api/me/activation) */
2578
+ updateActivationPreference(body: {
2579
+ dismissed_version: number;
2580
+ }): Promise<{
2581
+ dismissed_version: number;
2582
+ hint: string;
2583
+ }>;
2004
2584
  /** Assign or update a shared inbox conversation (PATCH /api/email/collaboration) */
2005
2585
  updateConversationState(body: {
2006
2586
  mailbox_id: string;
2007
2587
  thread_key: string;
2588
+ thread_aliases?: string[];
2008
2589
  subject?: string | null;
2009
2590
  status?: "open" | "waiting" | "closed";
2010
2591
  assignee?: {
@@ -2032,7 +2613,8 @@ export declare class Domani {
2032
2613
  destination?: "inbox" | "archive" | "sent" | "spam" | "trash";
2033
2614
  read?: boolean;
2034
2615
  starred?: boolean;
2035
- }): Promise<unknown>;
2616
+ idempotency_key?: string;
2617
+ }): Promise<MailboxOperationReceipt>;
2036
2618
  /** Update an agent identity (PATCH /api/agents/identity/{slug}) */
2037
2619
  updateIdentity(slug: string, body: {
2038
2620
  name?: string;
@@ -2078,11 +2660,11 @@ export declare class Domani {
2078
2660
  }>;
2079
2661
  /** Update notification preferences (PUT /api/notifications/preferences) */
2080
2662
  updateNotificationPreferences(body: {
2081
- preferences?: {
2663
+ preferences?: ({
2082
2664
  category: "domains" | "transfers" | "marketplace" | "email" | "inquiries";
2083
2665
  channel: "in_app" | "email";
2084
2666
  enabled: boolean;
2085
- }[];
2667
+ })[];
2086
2668
  expiry_alert_days?: number[];
2087
2669
  }): Promise<{
2088
2670
  ok?: boolean;
@@ -2102,11 +2684,13 @@ export declare class Domani {
2102
2684
  url?: string;
2103
2685
  events?: string[];
2104
2686
  active?: boolean;
2687
+ headers?: Record<string, unknown>;
2105
2688
  }): Promise<{
2106
2689
  id?: string;
2107
2690
  url?: string;
2108
2691
  events?: string[];
2109
2692
  active?: boolean;
2693
+ header_names?: string[];
2110
2694
  hint?: string;
2111
2695
  }>;
2112
2696
  /** Rename a workspace (PATCH /api/workspaces/{id}) */