domani 1.0.1 → 1.0.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.
Files changed (3) hide show
  1. package/dist/index.d.ts +1115 -65
  2. package/dist/index.js +256 -4
  3. package/package.json +19 -6
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";
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";
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. */
@@ -64,23 +64,52 @@ export interface TldInfo {
64
64
  transfer: number;
65
65
  }
66
66
  export interface DnsRecord {
67
- /** DNS record type */
68
- type: "A" | "AAAA" | "CNAME" | "MX" | "TXT" | "NS" | "SRV" | "CAA";
69
- /** Record name (@ for root, or subdomain) */
67
+ /** DNS record type. TLSA publishes a DANE record; its value is the rdata 'usage selector matching-type hex-data'. */
68
+ type: "A" | "AAAA" | "CNAME" | "MX" | "TXT" | "NS" | "SRV" | "CAA" | "TLSA";
69
+ /** Record name (@ for root, or subdomain, e.g. _443._tcp for TLSA) */
70
70
  name: string;
71
- /** Record value (IP address, hostname, etc.) */
71
+ /** Record value (IP address, hostname, or TLSA rdata like '3 1 1 abc123...') */
72
72
  value: string;
73
73
  /** Time to live in seconds */
74
74
  ttl: number;
75
75
  /** Priority value (required for MX records) */
76
76
  priority?: number;
77
77
  }
78
+ export interface DsRecord {
79
+ /** Key Tag identifying the DNSKEY */
80
+ keyTag: string;
81
+ /** DNSSEC algorithm number (e.g. 13 = ECDSAP256SHA256, 8 = RSASHA256) */
82
+ algorithm: string;
83
+ /** Digest type number (e.g. 2 = SHA-256) */
84
+ digestType: string;
85
+ /** Hex digest of the DNSKEY */
86
+ digest: string;
87
+ }
88
+ export interface AgentIdentity {
89
+ /** Stable identity id used to bind scoped API tokens */
90
+ id: string;
91
+ slug: string;
92
+ /** The identity subdomain (canonical) */
93
+ url: string;
94
+ /** Path fallback that always works */
95
+ page_url: string;
96
+ name: string | null;
97
+ bio: string | null;
98
+ emoji: string | null;
99
+ email: string | null;
100
+ links: {
101
+ label?: string;
102
+ url?: string;
103
+ }[];
104
+ views: number;
105
+ created_at: string;
106
+ }
78
107
  export interface DomainRecord {
79
108
  domain: string;
80
109
  /** Current registration status */
81
110
  status: "active" | "expired" | "pending";
82
111
  /** Whether auto-renew is enabled */
83
- auto_renew: boolean;
112
+ autoRenew: boolean;
84
113
  purchasedAt: string;
85
114
  expiresAt: string;
86
115
  /** Whether email is set up for this domain */
@@ -92,6 +121,320 @@ export interface DomainRecord {
92
121
  /** Number of mailboxes configured for this domain */
93
122
  mailboxCount: number;
94
123
  }
124
+ export interface MailRule {
125
+ id?: string;
126
+ /** Lower runs first */
127
+ priority?: number;
128
+ match_field?: "from" | "to" | "subject" | "body";
129
+ match_op?: "contains" | "equals" | "regex";
130
+ match_value?: string;
131
+ action?: "drop" | "mark_read" | "forward" | "webhook_only" | "label";
132
+ action_arg?: string | null;
133
+ enabled?: boolean;
134
+ created_at?: string;
135
+ }
136
+ export interface MailboxOperationReceipt {
137
+ operation_id: string;
138
+ idempotency_key: string;
139
+ /** True when this response reused the immutable completed receipt and performed no new mutation. */
140
+ idempotent_replay: boolean;
141
+ action: "move" | "mark_read" | "star" | "restore" | "delete_permanently";
142
+ status: "succeeded" | "partial";
143
+ results: ({
144
+ message_id: string;
145
+ ok: boolean;
146
+ folder?: "inbox" | "archive" | "sent" | "drafts" | "spam" | "trash";
147
+ changed?: boolean;
148
+ error?: {
149
+ code: string;
150
+ message: string;
151
+ };
152
+ })[];
153
+ summary: {
154
+ total: number;
155
+ succeeded: number;
156
+ failed: number;
157
+ changed: number;
158
+ };
159
+ created_at: string;
160
+ completed_at: string | null;
161
+ }
162
+ export interface LegacyMailboxOperationReceipt {
163
+ operation_id: string;
164
+ idempotency_key: string;
165
+ /** True when this response reused the immutable completed receipt and performed no new mutation. */
166
+ idempotent_replay: boolean;
167
+ action: "move" | "mark_read" | "star" | "restore" | "delete_permanently";
168
+ status: "succeeded" | "partial";
169
+ results: ({
170
+ message_id: string;
171
+ ok: boolean;
172
+ folder?: "inbox" | "archive" | "sent" | "drafts" | "spam" | "trash";
173
+ changed?: boolean;
174
+ error?: {
175
+ code: string;
176
+ message: string;
177
+ };
178
+ })[];
179
+ summary: {
180
+ total: number;
181
+ succeeded: number;
182
+ failed: number;
183
+ changed: number;
184
+ };
185
+ created_at: string;
186
+ completed_at: string | null;
187
+ count: number;
188
+ }
189
+ export interface WorkspaceSummary {
190
+ id: string;
191
+ name: string;
192
+ role: "owner" | "admin" | "member";
193
+ personal: boolean;
194
+ member_count: number;
195
+ mailbox_count: number;
196
+ plans: {
197
+ product: string;
198
+ plan: string;
199
+ status: string;
200
+ }[];
201
+ created_at: string;
202
+ }
203
+ 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")[];
204
+ export interface WorkspaceDetail {
205
+ id: string;
206
+ name: string;
207
+ role: "owner" | "admin" | "member";
208
+ personal: boolean;
209
+ members: ({
210
+ id: string;
211
+ principal_id: string;
212
+ email: string;
213
+ role: "owner" | "admin" | "member";
214
+ joined_at: string;
215
+ mailbox_grants: ({
216
+ mailbox_id?: string;
217
+ address?: string;
218
+ role?: "viewer" | "responder" | "manager";
219
+ })[];
220
+ })[];
221
+ /** Visible only to workspace owners and admins. */
222
+ invitations: ({
223
+ id?: string;
224
+ email?: string;
225
+ role?: "admin" | "member";
226
+ expires_at?: string;
227
+ })[];
228
+ mailboxes: ({
229
+ id?: string;
230
+ address?: string;
231
+ name?: string | null;
232
+ })[];
233
+ ownership: {
234
+ owner_membership_id: string | null;
235
+ pending_transfer: {
236
+ id: string;
237
+ to_email: string;
238
+ expires_at: string;
239
+ } | null;
240
+ };
241
+ }
242
+ export interface ConversationState {
243
+ id: string;
244
+ mailbox_id: string;
245
+ thread_key: string;
246
+ subject?: string | null;
247
+ status: "open" | "waiting" | "closed";
248
+ assignee?: {
249
+ type?: "member" | "token" | "agent";
250
+ id?: string;
251
+ label?: string;
252
+ } | null;
253
+ version: number;
254
+ /** Generation used by stale-safe guarded replies */
255
+ reply_version: number;
256
+ last_reply: {
257
+ actor: {
258
+ type: string;
259
+ id: string;
260
+ label: string;
261
+ };
262
+ at: string;
263
+ } | null;
264
+ note_count: number;
265
+ assigned_to_me?: boolean;
266
+ last_activity_at: string;
267
+ created_at: string;
268
+ updated_at: string;
269
+ }
270
+ export interface ConversationCoordinationSnapshot {
271
+ conversation_id: string;
272
+ mailbox_id: string;
273
+ thread_key: string;
274
+ reply_version: number;
275
+ last_reply: {
276
+ actor: {
277
+ type: string;
278
+ id: string;
279
+ label: string;
280
+ };
281
+ at: string;
282
+ } | null;
283
+ presence: ({
284
+ actor: {
285
+ type: string;
286
+ id: string;
287
+ label: string;
288
+ };
289
+ client_id: string;
290
+ mode: "viewing" | "composing";
291
+ expires_at: string;
292
+ })[];
293
+ compose_lease: {
294
+ lease_id: string;
295
+ holder: {
296
+ type: string;
297
+ id: string;
298
+ label: string;
299
+ };
300
+ client_id: string;
301
+ base_reply_version: number;
302
+ version: number;
303
+ expires_at: string;
304
+ held_by_me: boolean;
305
+ } | null;
306
+ server_time: string;
307
+ heartbeat_after_ms: 15000;
308
+ expires_after_ms: 45000;
309
+ }
310
+ export interface ConversationWorkItem {
311
+ mailbox_id: string;
312
+ thread_key: string;
313
+ thread_aliases: string[];
314
+ subject: string | null;
315
+ status: "open" | "waiting" | "closed";
316
+ assignee: {
317
+ type: "member" | "token" | "agent";
318
+ id: string;
319
+ label: string | null;
320
+ } | null;
321
+ assigned_to_me: boolean;
322
+ persisted: boolean;
323
+ conversation_id: string | null;
324
+ version: number | null;
325
+ note_count: number;
326
+ scanned_message_count: number;
327
+ scanned_unread_count: number;
328
+ first_message_at: string | null;
329
+ last_activity_at: string;
330
+ latest_message: {
331
+ id: string;
332
+ direction: string;
333
+ from: string;
334
+ to: string;
335
+ preview: string | null;
336
+ created_at: string;
337
+ } | null;
338
+ }
339
+ export interface ConversationNote {
340
+ id: string;
341
+ author: {
342
+ type: string;
343
+ id: string;
344
+ label: string;
345
+ };
346
+ body: string;
347
+ mentions: Record<string, unknown>[];
348
+ created_at: string;
349
+ updated_at: string;
350
+ }
351
+ export interface MailActivity {
352
+ id: string;
353
+ type: string;
354
+ actor: {
355
+ type: string;
356
+ id: string;
357
+ label: string;
358
+ };
359
+ metadata: Record<string, unknown>;
360
+ created_at: string;
361
+ }
362
+ export interface MailboxChange {
363
+ /** Monotonic sequence serialized as a string */
364
+ sequence: string;
365
+ type: string;
366
+ resource_type: string;
367
+ resource_id: string | null;
368
+ resource_version: number | null;
369
+ actor: {
370
+ type: string;
371
+ id: string;
372
+ label: string | null;
373
+ } | null;
374
+ operation_id: string | null;
375
+ data: Record<string, unknown>;
376
+ created_at: string;
377
+ }
378
+ export interface DomainBrief {
379
+ id: string;
380
+ domain: string;
381
+ depth: "instant" | "deep";
382
+ status: "ready" | "degraded" | "failed";
383
+ summary: string;
384
+ registration: Record<string, unknown>;
385
+ website: Record<string, unknown>;
386
+ infrastructure: {
387
+ nameservers: string[];
388
+ mailProviders: string[];
389
+ dnssec: boolean;
390
+ mail: {
391
+ status: "active" | "inactive" | "unknown";
392
+ provider: string | null;
393
+ providerKind: "managed" | "self_hosted" | "gateway" | "custom" | "unknown";
394
+ security: "hardened" | "established" | "basic" | "exposed" | "unknown";
395
+ businessCriticality: "high" | "medium" | "low" | "unknown";
396
+ spf: boolean | null;
397
+ dmarc: "reject" | "quarantine" | "monitor" | "none" | "unknown";
398
+ mtaSts: boolean | null;
399
+ tlsReporting: boolean | null;
400
+ bimi: boolean | null;
401
+ };
402
+ };
403
+ market: Record<string, unknown>;
404
+ /** Redacted contact-channel metadata. Raw addresses are never returned. */
405
+ contactability: {
406
+ state: "direct" | "indirect" | "none_found" | "unknown";
407
+ channelType: "registration_email" | null;
408
+ source: string | null;
409
+ confidence: "high" | "medium" | "low" | null;
410
+ };
411
+ acquisitionOutlook: {
412
+ state: "promising" | "possible" | "difficult" | "unknown";
413
+ rationale: string;
414
+ };
415
+ recommendation: {
416
+ action: "register" | "buy_now" | "negotiate_listing" | "private_broker" | "backorder" | "watch" | "choose_alternative";
417
+ rationale: string;
418
+ };
419
+ completeness: number;
420
+ analyzedAt: string;
421
+ staleAt: string;
422
+ analysisVersion: string;
423
+ evidence: ({
424
+ id: string;
425
+ kind: string;
426
+ label: string;
427
+ value: string;
428
+ source: string;
429
+ sourceUrl?: string;
430
+ confidence: "high" | "medium" | "low";
431
+ visibility: "public" | "redacted";
432
+ capturedAt: string;
433
+ })[];
434
+ warnings: string[];
435
+ createdAt: string;
436
+ updatedAt: string;
437
+ }
95
438
  export interface Backorder {
96
439
  id?: string;
97
440
  domain?: string;
@@ -169,13 +512,13 @@ export interface Negotiation {
169
512
  deal_id?: string | null;
170
513
  created_at?: string;
171
514
  /** The negotiation thread, oldest first */
172
- offers?: {
515
+ offers?: ({
173
516
  from?: "you" | "counterparty";
174
517
  kind?: "offer" | "counter" | "accept" | "decline";
175
518
  amount?: number | null;
176
519
  message?: string | null;
177
520
  at?: string;
178
- }[];
521
+ })[];
179
522
  }
180
523
  export interface DomainDetail {
181
524
  domain: string;
@@ -190,6 +533,10 @@ export interface DomainDetail {
190
533
  payment_method: "card" | "x402" | "crypto";
191
534
  /** On-chain tx hash (USDC payments) */
192
535
  payment_tx?: string | null;
536
+ /** Whether live registrar data was refreshed or is managed externally */
537
+ registrar_status: "connected" | "unavailable" | "external";
538
+ /** When the registrar refresh was attempted */
539
+ registrar_checked_at: string;
193
540
  /** Domain registration details (null if unavailable) */
194
541
  registrar?: {
195
542
  security_lock?: boolean;
@@ -215,6 +562,20 @@ export interface TokenInfo {
215
562
  /** Permission scopes granted to this token. ['*'] means full access. */
216
563
  scopes?: string[];
217
564
  createdAt: string;
565
+ /** Per-transaction spend cap in USD (null = uncapped) */
566
+ max_per_tx?: number | null;
567
+ /** Rolling monthly spend cap in USD (null = uncapped) */
568
+ max_per_month?: number | null;
569
+ /** USD spent against the monthly cap this calendar month */
570
+ spent_this_month?: number;
571
+ /** Id of the token that minted this one (null = created via dashboard/session) */
572
+ parent_token_id?: string | null;
573
+ /** Agent identity represented by this token. Its mail actions are attributed to this agent. */
574
+ agent_identity?: {
575
+ id?: string;
576
+ name?: string | null;
577
+ slug?: string;
578
+ } | null;
218
579
  }
219
580
  export interface Contact {
220
581
  /** Contact name */
@@ -283,6 +644,36 @@ export interface AccountInfo {
283
644
  token_count: number;
284
645
  created_at: string;
285
646
  }
647
+ export interface ActivationProjection {
648
+ version: 1;
649
+ account_created_at: string;
650
+ entry: {
651
+ brand: string;
652
+ surface: string;
653
+ intent: string;
654
+ };
655
+ milestones: {
656
+ mailbox_created_at: string | null;
657
+ first_message_sent_at: string | null;
658
+ first_message_received_at: string | null;
659
+ custom_domain_activated_at: string | null;
660
+ programmatic_action_completed_at: string | null;
661
+ };
662
+ status: "first_run" | "setup_active" | "mail_active" | "mail_loop_complete" | "domain_active" | "programmatic_active" | "multi_surface_active";
663
+ recommended_actions: ({
664
+ id: string;
665
+ label: string;
666
+ priority: number;
667
+ surfaces: ("web" | "mobile" | "cli" | "mcp")[];
668
+ href?: string;
669
+ operation: string;
670
+ })[];
671
+ available_paths: string[];
672
+ dismissed_version: number;
673
+ pending_claim: {
674
+ slug: string;
675
+ } | null;
676
+ }
286
677
  export declare class Domani {
287
678
  private apiKey;
288
679
  private baseUrl;
@@ -292,6 +683,30 @@ export declare class Domani {
292
683
  query?: Record<string, unknown>;
293
684
  body?: unknown;
294
685
  }): Promise<T>;
686
+ /** Accept an access or ownership offer (POST /api/workspaces/access/offers/accept) */
687
+ acceptWorkspaceAccessOffer(body: {
688
+ token: string;
689
+ }): Promise<unknown>;
690
+ /** Accept a workspace invitation (POST /api/workspaces/invitations/accept) */
691
+ acceptWorkspaceInvitation(body: {
692
+ token: string;
693
+ }): Promise<unknown>;
694
+ /** Accept workspace ownership (POST /api/workspaces/ownership-transfers/accept) */
695
+ acceptWorkspaceOwnershipTransfer(body: {
696
+ token: string;
697
+ }): Promise<unknown>;
698
+ /** Add a private conversation note (POST /api/email/collaboration/{id}/notes) */
699
+ addConversationNote(id: string, body: {
700
+ body: string;
701
+ mention_membership_ids?: string[];
702
+ }): Promise<ConversationNote>;
703
+ /** Publish a DNSSEC DS record (enable DNSSEC) (POST /api/domains/{domain}/dnssec) */
704
+ addDnssecRecord(domain: string, body: DsRecord): Promise<{
705
+ success?: boolean;
706
+ domain?: string;
707
+ enabled?: boolean;
708
+ records?: DsRecord[];
709
+ }>;
295
710
  /** Add a mailbox alias (POST /api/emails/{address}/aliases) */
296
711
  addMailboxAlias(address: string, body: {
297
712
  alias: string;
@@ -301,6 +716,16 @@ export declare class Domani {
301
716
  created_at?: string;
302
717
  hint?: string;
303
718
  }>;
719
+ /** Add an inbound mail rule (POST /api/emails/{address}/rules) */
720
+ addMailRule(address: string, body: {
721
+ match_field: "from" | "to" | "subject" | "body";
722
+ match_op: "contains" | "equals" | "regex";
723
+ match_value: string;
724
+ action: "drop" | "mark_read" | "forward" | "webhook_only" | "label";
725
+ action_arg?: string;
726
+ priority?: number;
727
+ enabled?: boolean;
728
+ }): Promise<MailRule>;
304
729
  /** Add a suppression (POST /api/suppressions) */
305
730
  addSuppression(body: {
306
731
  address: string;
@@ -312,6 +737,27 @@ export declare class Domani {
312
737
  created_at?: string;
313
738
  hint?: string;
314
739
  }>;
740
+ /** Adopt an owned mailbox into a workspace (POST /api/workspaces/{id}/mailboxes) */
741
+ attachWorkspaceMailbox(id: string, body: {
742
+ mailbox_id: string;
743
+ }): Promise<unknown>;
744
+ /** Buy an aftermarket domain (POST /api/domains/{domain}/buy-aftermarket) */
745
+ buyAftermarket(domain: string, body?: {
746
+ max_price?: number;
747
+ payment_method?: "card" | "usdc" | "balance";
748
+ payment_tx?: string;
749
+ payment_chain?: "base" | "ethereum";
750
+ }): Promise<{
751
+ domain: string;
752
+ status: string;
753
+ price: number;
754
+ currency: string;
755
+ payment_method: string;
756
+ payment_tx?: string;
757
+ marketplace: string;
758
+ hint?: string;
759
+ next_steps?: string[];
760
+ }>;
315
761
  /** Purchase one or more domains (POST /api/domains/buy) */
316
762
  buyDomain(body: {
317
763
  domain?: string;
@@ -320,6 +766,7 @@ export declare class Domani {
320
766
  payment_tx?: string;
321
767
  payment_chain?: "base" | "ethereum";
322
768
  years?: number;
769
+ max_price?: number;
323
770
  ref?: string;
324
771
  }): Promise<{
325
772
  domain?: string;
@@ -352,6 +799,11 @@ export declare class Domani {
352
799
  cancelNegotiation(id: string): Promise<{
353
800
  cancelled?: boolean;
354
801
  }>;
802
+ /** Cancel a Mailzero workspace subscription (POST /api/workspaces/{id}/billing/cancel) */
803
+ cancelWorkspaceSubscription(id: string): Promise<{
804
+ message: string;
805
+ cancel_at?: string | null;
806
+ }>;
355
807
  /** Check email DNS health (MX, SPF, DMARC, DKIM) (GET /api/domains/{domain}/email/check) */
356
808
  checkEmail(domain: string): Promise<{
357
809
  domain?: string;
@@ -373,6 +825,26 @@ export declare class Domani {
373
825
  selectors?: string[];
374
826
  };
375
827
  }>;
828
+ /** Preflight an outbound email (POST /api/emails/{address}/deliverability-check) */
829
+ checkEmailDeliverabilityByAddress(address: string, body: unknown | unknown): Promise<{
830
+ policy_version: string;
831
+ decision: "allow" | "allow_with_warnings" | "deny";
832
+ safe_to_send: boolean;
833
+ risk: "low" | "medium" | "high" | "blocked";
834
+ score: number;
835
+ authentication_message?: boolean;
836
+ checks: ({
837
+ id: string;
838
+ category: "transport_safety" | "credential_safety" | "reputation" | "content_quality" | "reliability";
839
+ status: "pass" | "warning" | "blocked";
840
+ message: string;
841
+ fix?: string;
842
+ evidence?: string[];
843
+ })[];
844
+ blocked_reasons: string[];
845
+ warnings: string[];
846
+ override_used?: boolean;
847
+ }>;
376
848
  /** Pre-check transfer eligibility (GET /api/domains/transfer-check) */
377
849
  checkTransferEligibility(query?: {
378
850
  domain: string;
@@ -393,7 +865,32 @@ export declare class Domani {
393
865
  status: "pending_owner" | "pending_admin" | "pending_registry" | "completed" | "cancelled" | "unknown";
394
866
  timestamp?: string;
395
867
  hint: string;
868
+ continuity?: {
869
+ strategy?: "preserve_nameservers";
870
+ expected_nameservers?: string[];
871
+ dns_provider?: string;
872
+ dnssec_enabled?: boolean;
873
+ verification?: {
874
+ status?: "verified" | "repaired" | "degraded" | "unknown";
875
+ nameserversPreserved?: boolean | null;
876
+ dnssecPreserved?: boolean | null;
877
+ repairedNameservers?: boolean;
878
+ warnings?: string[];
879
+ };
880
+ };
396
881
  }>;
882
+ /** Claim a free agent identity (<handle>.domani.run) (POST /api/agents/identity) */
883
+ claimIdentity(body: {
884
+ slug: string;
885
+ name?: string;
886
+ bio?: string;
887
+ emoji?: string;
888
+ email?: string;
889
+ links?: {
890
+ label?: string;
891
+ url?: string;
892
+ }[];
893
+ }): Promise<AgentIdentity>;
397
894
  /** Clear domain catch-all (DELETE /api/domains/{domain}/email/catch-all) */
398
895
  clearCatchAll(domain: string): Promise<{
399
896
  domain?: string;
@@ -405,11 +902,23 @@ export declare class Domani {
405
902
  domain?: string;
406
903
  redirect_url?: string | null;
407
904
  }>;
905
+ /** Clone another domain's DNS onto this one (POST /api/domains/{domain}/dns/clone) */
906
+ cloneDns(domain: string, body: {
907
+ from: string;
908
+ replace?: boolean;
909
+ }): Promise<{
910
+ success?: boolean;
911
+ from_domain?: string;
912
+ to_domain?: string;
913
+ records?: DnsRecord[];
914
+ }>;
408
915
  /** Connect a domain to a hosting or email provider (POST /api/domains/{domain}/connect) */
409
916
  connectDomain(domain: string, body: {
410
917
  target?: string;
411
918
  provider?: string;
412
919
  method?: string;
920
+ dry_run?: boolean;
921
+ confirm_replace_mx?: boolean;
413
922
  }): Promise<{
414
923
  domain?: string;
415
924
  provider?: string;
@@ -417,9 +926,10 @@ export declare class Domani {
417
926
  method?: string;
418
927
  records?: DnsRecord[];
419
928
  docs?: string;
420
- status?: "dns_set" | "manual_setup_required";
929
+ status?: "dns_set" | "manual_setup_required" | "dry_run";
421
930
  hint?: string;
422
931
  next_steps?: string[];
932
+ diff?: Record<string, unknown>;
423
933
  }>;
424
934
  /** Place a backorder on a taken domain (POST /api/backorders) */
425
935
  createBackorder(body: {
@@ -446,6 +956,14 @@ export declare class Domani {
446
956
  hint?: string;
447
957
  next_steps?: string[];
448
958
  }>;
959
+ /** Analyze a domain and persist an evidence-backed brief (POST /api/domain-briefs) */
960
+ createDomainBrief(body: {
961
+ domain: string;
962
+ depth?: "instant" | "deep";
963
+ refresh?: boolean;
964
+ }): Promise<{
965
+ brief: DomainBrief;
966
+ }>;
449
967
  /** List a domain for sale (PUT /api/domains/{domain}/for-sale) */
450
968
  createListing(domain: string, body: {
451
969
  price: number;
@@ -467,25 +985,57 @@ export declare class Domani {
467
985
  slug: string;
468
986
  name?: string;
469
987
  }): Promise<{
470
- id?: string;
471
- address?: string;
472
- slug?: string;
473
- domain?: string;
988
+ id: string;
989
+ address: string;
990
+ name: string | null;
991
+ slug: string;
992
+ domain: string;
993
+ kind: string;
994
+ workspace_id: string | null;
995
+ access_role: "viewer" | "responder" | "manager";
996
+ effective_capabilities: MailboxEffectiveCapabilities;
997
+ collaboration_enabled: boolean;
998
+ message_count: number;
999
+ webhook_url: string | null;
1000
+ forward_to: string | null;
1001
+ signing_secret?: string | null;
1002
+ created_at: string;
1003
+ hint: string;
474
1004
  }>;
475
1005
  /** Create a mailbox (POST /api/emails) */
476
- createMailboxByAddress(body?: {
1006
+ createMailboxByAddress(body: {
477
1007
  address: string;
478
1008
  name?: string;
479
1009
  force?: boolean;
1010
+ kind?: "api" | "hosted";
1011
+ workspace_id?: string;
1012
+ }): Promise<{
1013
+ id: string;
1014
+ address: string;
1015
+ name: string | null;
1016
+ domain: string;
1017
+ slug: string;
1018
+ kind: string;
1019
+ workspace_id: string | null;
1020
+ access_role: "viewer" | "responder" | "manager";
1021
+ effective_capabilities: MailboxEffectiveCapabilities;
1022
+ collaboration_enabled: boolean;
1023
+ message_count: number;
1024
+ webhook_url: string | null;
1025
+ forward_to: string | null;
1026
+ signing_secret?: string | null;
1027
+ created_at: string;
1028
+ hint: string;
1029
+ }>;
1030
+ /** Create an app password (hosted) (POST /api/emails/{address}/credentials) */
1031
+ createMailboxCredential(address: string, body?: {
1032
+ label?: string;
480
1033
  }): Promise<{
481
1034
  id?: string;
482
- address?: string;
483
- name?: string | null;
484
- domain?: string;
485
- slug?: string;
486
- webhook_url?: string | null;
487
- forward_to?: string | null;
488
- signing_secret?: string;
1035
+ label?: string;
1036
+ password?: string;
1037
+ client_settings?: Record<string, unknown>;
1038
+ hint?: string;
489
1039
  }>;
490
1040
  /** Create a new API token (POST /api/tokens) */
491
1041
  createToken(body: {
@@ -493,6 +1043,9 @@ export declare class Domani {
493
1043
  expires_in?: number;
494
1044
  expires_at?: string;
495
1045
  scopes?: string[];
1046
+ max_per_tx?: number;
1047
+ max_per_month?: number;
1048
+ agent_identity_id?: string;
496
1049
  }): Promise<{
497
1050
  id?: string;
498
1051
  name?: string;
@@ -500,6 +1053,13 @@ export declare class Domani {
500
1053
  expiresAt?: string | null;
501
1054
  scopes?: string[];
502
1055
  createdAt?: string;
1056
+ max_per_tx?: number | null;
1057
+ max_per_month?: number | null;
1058
+ agent_identity?: {
1059
+ id?: string;
1060
+ name?: string | null;
1061
+ slug?: string;
1062
+ } | null;
503
1063
  }>;
504
1064
  /** Create webhook (POST /api/webhooks) */
505
1065
  createWebhook(body: {
@@ -514,11 +1074,40 @@ export declare class Domani {
514
1074
  created_at?: string;
515
1075
  hint?: string;
516
1076
  }>;
517
- /** Delete account and all associated data (DELETE /api/me) */
1077
+ /** Create a workspace (POST /api/workspaces) */
1078
+ createWorkspace(body: {
1079
+ name: string;
1080
+ }): Promise<unknown>;
1081
+ /** Offer mailbox access or workspace ownership (POST /api/workspaces/{id}/access/offers) */
1082
+ createWorkspaceAccessOffer(id: string, body: {
1083
+ email: string;
1084
+ grants: Record<string, unknown>[];
1085
+ ownership_disposition?: "unchanged" | "claim";
1086
+ creator_disposition?: "stay" | "stay_admin" | "leave";
1087
+ billing_disposition?: "unchanged" | "sponsor" | "transfer";
1088
+ }): Promise<unknown>;
1089
+ /** Start Mailzero workspace checkout (POST /api/workspaces/{id}/billing/checkout) */
1090
+ createWorkspaceCheckout(id: string, body: {
1091
+ plan: "mail_solo" | "mail_team" | "mail_business";
1092
+ }): Promise<{
1093
+ url?: string | null;
1094
+ workspace_id: string;
1095
+ plan: string;
1096
+ }>;
1097
+ /** Delete account (blocked while domains are held) (DELETE /api/me) */
518
1098
  deleteAccount(): Promise<{
519
1099
  deleted?: boolean;
520
1100
  hint?: string;
521
1101
  }>;
1102
+ /** Remove a DNSSEC DS record (disable DNSSEC) (DELETE /api/domains/{domain}/dnssec) */
1103
+ deleteDnssecRecord(domain: string, query?: {
1104
+ keyTag: string;
1105
+ }): Promise<{
1106
+ success?: boolean;
1107
+ domain?: string;
1108
+ enabled?: boolean;
1109
+ records?: DsRecord[];
1110
+ }>;
522
1111
  /** Delete a mailbox (DELETE /api/emails/{address}) */
523
1112
  deleteMailboxByAddress(address: string, body?: {
524
1113
  confirm?: boolean;
@@ -531,9 +1120,8 @@ export declare class Domani {
531
1120
  /** Bulk delete messages (POST /api/emails/{address}/messages/delete) */
532
1121
  deleteMessagesByAddress(address: string, body?: {
533
1122
  message_ids: string[];
534
- }): Promise<{
535
- count?: number;
536
- }>;
1123
+ idempotency_key?: string;
1124
+ }): Promise<LegacyMailboxOperationReceipt>;
537
1125
  /** Delete webhook (DELETE /api/webhooks/{id}) */
538
1126
  deleteWebhook(id: string): Promise<{
539
1127
  success?: boolean;
@@ -569,6 +1157,8 @@ export declare class Domani {
569
1157
  }>;
570
1158
  /** Get current account details (GET /api/me) */
571
1159
  getAccount(): Promise<AccountInfo>;
1160
+ /** Get truthful activation state and recommended next actions (GET /api/me/activation) */
1161
+ getActivation(): Promise<ActivationProjection>;
572
1162
  /** Get EPP auth code (GET /api/domains/{domain}/auth-code) */
573
1163
  getAuthCode(domain: string): Promise<{
574
1164
  domain: string;
@@ -601,6 +1191,11 @@ export declare class Domani {
601
1191
  has_contact?: boolean;
602
1192
  contact?: RegistrantContact;
603
1193
  }>;
1194
+ /** Get active viewers, composers, and the compose lease (GET /api/email/collaboration/coordination) */
1195
+ getConversationCoordination(query?: {
1196
+ mailbox_id: string;
1197
+ thread_key: string;
1198
+ }): Promise<ConversationCoordinationSnapshot>;
604
1199
  /** Get deal detail with timeline (GET /api/deals/{id}) */
605
1200
  getDeal(id: string): Promise<{
606
1201
  deal?: {
@@ -617,11 +1212,11 @@ export declare class Domani {
617
1212
  transfer_deadline?: string | null;
618
1213
  completed_at?: string | null;
619
1214
  created_at?: string;
620
- events?: {
1215
+ events?: ({
621
1216
  status?: string;
622
1217
  detail?: string | null;
623
1218
  created_at?: string;
624
- }[];
1219
+ })[];
625
1220
  };
626
1221
  hint?: string;
627
1222
  }>;
@@ -633,6 +1228,17 @@ export declare class Domani {
633
1228
  getDnsRecords(domain: string): Promise<{
634
1229
  domain?: string;
635
1230
  records?: DnsRecord[];
1231
+ zone_version?: string;
1232
+ }>;
1233
+ /** List DNSSEC DS records for a domain you own (GET /api/domains/{domain}/dnssec) */
1234
+ getDnssecRecords(domain: string): Promise<{
1235
+ domain?: string;
1236
+ enabled?: boolean;
1237
+ records?: DsRecord[];
1238
+ }>;
1239
+ /** Get a previously generated domain brief (GET /api/domain-briefs/{id}) */
1240
+ getDomainBrief(id: string): Promise<{
1241
+ brief: DomainBrief;
636
1242
  }>;
637
1243
  /** Check email DNS status (GET /api/domains/{domain}/email/status) */
638
1244
  getDomainEmailStatus(domain: string): Promise<{
@@ -674,6 +1280,51 @@ export declare class Domani {
674
1280
  mx?: string[];
675
1281
  };
676
1282
  }>;
1283
+ /** Get owner-scoped email deliverability health (GET /api/domains/{domain}/email/deliverability) */
1284
+ getEmailDeliverability(domain: string): Promise<{
1285
+ domain: string;
1286
+ status: "healthy" | "limited_data" | "needs_attention" | "at_risk" | "paused";
1287
+ confidence: "none" | "limited" | "sufficient";
1288
+ checked_at: string;
1289
+ window_days?: number;
1290
+ readiness: {
1291
+ score?: number;
1292
+ configured?: number;
1293
+ total?: number;
1294
+ provider?: string | null;
1295
+ checks?: {
1296
+ id?: string;
1297
+ label?: string;
1298
+ configured?: boolean;
1299
+ }[];
1300
+ };
1301
+ sending_health: {
1302
+ recipients?: Record<string, unknown>;
1303
+ rates?: {
1304
+ bounce?: number;
1305
+ complaint?: number;
1306
+ };
1307
+ paused?: boolean;
1308
+ pause_reason?: string | null;
1309
+ account_suppressions?: number;
1310
+ };
1311
+ placement: {
1312
+ available?: boolean;
1313
+ last_checked_at?: string | null;
1314
+ providers?: ({
1315
+ provider?: "gmail" | "outlook" | "yahoo";
1316
+ status?: "inbox" | "spam" | "missing" | "error" | "not_tested";
1317
+ })[];
1318
+ note?: string;
1319
+ };
1320
+ actions: ({
1321
+ id?: string;
1322
+ severity?: "info" | "warning" | "critical";
1323
+ title?: string;
1324
+ detail?: string;
1325
+ })[];
1326
+ caveats?: string[];
1327
+ }>;
677
1328
  /** Get mailbox avatar info (GET /api/emails/{address}/avatar) */
678
1329
  getMailboxAvatarByAddress(address: string): Promise<{
679
1330
  address?: string;
@@ -688,12 +1339,35 @@ export declare class Domani {
688
1339
  address?: string;
689
1340
  slug?: string;
690
1341
  domain?: string;
1342
+ kind?: string;
1343
+ workspace_id?: string | null;
1344
+ access_role?: "viewer" | "responder" | "manager";
1345
+ effective_capabilities?: MailboxEffectiveCapabilities;
691
1346
  webhook_url?: string | null;
692
1347
  forward_to?: string | null;
693
- signing_secret?: string;
1348
+ signing_secret?: string | null;
694
1349
  message_count?: number;
1350
+ storage_quota_bytes?: number | null;
1351
+ storage_used_bytes?: number | null;
1352
+ storage_measured_at?: string | null;
695
1353
  created_at?: string;
696
1354
  }>;
1355
+ /** Get mail client settings (hosted) (GET /api/emails/{address}/client-settings) */
1356
+ getMailboxClientSettings(address: string): Promise<{
1357
+ mailbox?: string;
1358
+ username?: string;
1359
+ imap?: {
1360
+ host?: string;
1361
+ port?: number;
1362
+ security?: string;
1363
+ };
1364
+ smtp?: {
1365
+ host?: string;
1366
+ port?: number;
1367
+ security?: string;
1368
+ };
1369
+ hint?: string;
1370
+ }>;
697
1371
  /** Get mailbox webhook config (GET /api/emails/{address}/webhook) */
698
1372
  getMailboxWebhook(address: string): Promise<{
699
1373
  address?: string;
@@ -705,9 +1379,12 @@ export declare class Domani {
705
1379
  /** Get a message (GET /api/emails/{address}/messages/{id}) */
706
1380
  getMessageByAddress(address: string, id: string): Promise<{
707
1381
  id?: string;
1382
+ thread_key?: string;
1383
+ thread_aliases?: string[];
708
1384
  message_id?: string | null;
709
1385
  direction?: "in" | "out";
710
1386
  from?: string;
1387
+ avatar_url?: string | null;
711
1388
  to?: string;
712
1389
  cc?: string | null;
713
1390
  reply_to?: string | null;
@@ -716,20 +1393,20 @@ export declare class Domani {
716
1393
  html?: string | null;
717
1394
  in_reply_to?: string | null;
718
1395
  references?: string | null;
719
- attachments?: {
1396
+ attachments?: ({
720
1397
  filename?: string;
721
1398
  content_type?: string;
722
1399
  size?: number;
723
1400
  url?: string | null;
724
- }[];
1401
+ })[];
725
1402
  status?: string;
726
1403
  is_read?: boolean;
727
1404
  read_at?: string | null;
728
- events?: {
1405
+ events?: ({
729
1406
  status?: string;
730
1407
  detail?: Record<string, unknown> | null;
731
1408
  created_at?: string;
732
- }[];
1409
+ })[];
733
1410
  created_at?: string;
734
1411
  }>;
735
1412
  /** Get nameservers for a domain (GET /api/domains/{domain}/nameservers) */
@@ -745,13 +1422,14 @@ export declare class Domani {
745
1422
  }>;
746
1423
  /** Get notification preferences (GET /api/notifications/preferences) */
747
1424
  getNotificationPreferences(): Promise<{
748
- preferences?: {
1425
+ preferences?: ({
749
1426
  category?: "domains" | "transfers" | "marketplace" | "email" | "inquiries";
750
1427
  label?: string;
751
1428
  description?: string;
752
1429
  channel?: "in_app" | "email";
753
1430
  enabled?: boolean;
754
- }[];
1431
+ })[];
1432
+ expiry_alert_days?: number[];
755
1433
  }>;
756
1434
  /** Get parking analytics (GET /api/domains/{domain}/analytics) */
757
1435
  getParkingAnalytics(domain: string): Promise<{
@@ -764,11 +1442,11 @@ export declare class Domani {
764
1442
  date?: string;
765
1443
  views?: number;
766
1444
  }[];
767
- recent_inquiries?: {
1445
+ recent_inquiries?: ({
768
1446
  email?: string;
769
1447
  offer?: number | null;
770
1448
  date?: string;
771
- }[];
1449
+ })[];
772
1450
  hint?: string;
773
1451
  }>;
774
1452
  /** Get marketplace payout status (GET /api/billing/connect) */
@@ -817,17 +1495,31 @@ export declare class Domani {
817
1495
  getWebhookDeliveries(id: string, query?: {
818
1496
  limit?: number;
819
1497
  }): Promise<{
820
- deliveries?: {
1498
+ deliveries?: ({
821
1499
  id?: string;
1500
+ replay_of_id?: string | null;
822
1501
  event_type?: string;
823
1502
  status?: "pending" | "delivered" | "failed";
824
1503
  http_status?: number | null;
825
1504
  attempts?: number;
826
1505
  last_error?: string | null;
827
1506
  created_at?: string;
828
- }[];
1507
+ })[];
829
1508
  hint?: string;
830
1509
  }>;
1510
+ /** Get workspace members and mailboxes (GET /api/workspaces/{id}) */
1511
+ getWorkspace(id: string): Promise<WorkspaceDetail>;
1512
+ /** Get the canonical workspace access graph (GET /api/workspaces/{id}/access) */
1513
+ getWorkspaceAccess(id: string): Promise<unknown>;
1514
+ /** Heartbeat viewing or composing presence (PUT /api/email/collaboration/coordination) */
1515
+ heartbeatConversationPresence(body: {
1516
+ mailbox_id: string;
1517
+ thread_key: string;
1518
+ client_id: string;
1519
+ subject?: string | null;
1520
+ mode: "viewing" | "composing";
1521
+ acquire_lease?: boolean;
1522
+ }): Promise<ConversationCoordinationSnapshot>;
831
1523
  /** Import an external domain (POST /api/domains/import) */
832
1524
  importDomain(body: {
833
1525
  domain: string;
@@ -842,6 +1534,33 @@ export declare class Domani {
842
1534
  };
843
1535
  hint?: string;
844
1536
  }>;
1537
+ /** Invite a workspace member (POST /api/workspaces/{id}/invitations) */
1538
+ inviteWorkspaceMember(id: string, body: {
1539
+ email: string;
1540
+ role?: "admin" | "member";
1541
+ mailbox_ids?: string[];
1542
+ mailbox_role?: "viewer" | "responder" | "manager";
1543
+ }): Promise<unknown>;
1544
+ /** Leave a workspace (DELETE /api/workspaces/{id}/members/me) */
1545
+ leaveWorkspace(id: string): Promise<unknown>;
1546
+ /** List security audit events (GET /api/audit) */
1547
+ listAuditEvents(query?: {
1548
+ limit?: number;
1549
+ cursor?: string;
1550
+ type?: string;
1551
+ }): Promise<{
1552
+ events?: ({
1553
+ id?: string;
1554
+ tokenId?: string | null;
1555
+ type?: string;
1556
+ targetType?: string | null;
1557
+ targetId?: string | null;
1558
+ metadata?: Record<string, unknown>;
1559
+ createdAt?: string;
1560
+ })[];
1561
+ next_cursor?: string | null;
1562
+ hint?: string;
1563
+ }>;
845
1564
  /** List your backorders (GET /api/backorders) */
846
1565
  listBackorders(query?: {
847
1566
  status?: "watching" | "caught" | "failed" | "cancelled" | "expired";
@@ -862,6 +1581,22 @@ export declare class Domani {
862
1581
  email?: Record<string, unknown>[];
863
1582
  };
864
1583
  }>;
1584
+ /** List attributed conversation activity (GET /api/email/collaboration/{id}/activity) */
1585
+ listConversationActivity(id: string): Promise<{
1586
+ activity: MailActivity[];
1587
+ }>;
1588
+ /** List private conversation notes (GET /api/email/collaboration/{id}/notes) */
1589
+ listConversationNotes(id: string): Promise<{
1590
+ notes: ConversationNote[];
1591
+ }>;
1592
+ /** List persisted shared inbox state (GET /api/email/collaboration) */
1593
+ listConversationStates(query?: {
1594
+ mailbox_ids: string;
1595
+ status?: "open" | "waiting" | "closed";
1596
+ assigned?: "mine" | "unassigned" | "all";
1597
+ }): Promise<{
1598
+ conversations?: ConversationState[];
1599
+ }>;
865
1600
  /** List your deals (GET /api/deals) */
866
1601
  listDeals(query?: {
867
1602
  role?: "buyer" | "seller";
@@ -870,7 +1605,7 @@ export declare class Domani {
870
1605
  limit?: number;
871
1606
  cursor?: string;
872
1607
  }): Promise<{
873
- deals?: {
1608
+ deals?: ({
874
1609
  id?: string;
875
1610
  domain?: string;
876
1611
  price?: number;
@@ -881,7 +1616,7 @@ export declare class Domani {
881
1616
  epp_deadline?: string | null;
882
1617
  transfer_deadline?: string | null;
883
1618
  created_at?: string;
884
- }[];
1619
+ })[];
885
1620
  has_more?: boolean;
886
1621
  next_cursor?: string | null;
887
1622
  }>;
@@ -889,21 +1624,51 @@ export declare class Domani {
889
1624
  listDomains(): Promise<{
890
1625
  domains?: DomainRecord[];
891
1626
  }>;
1627
+ /** List email folders and counts (GET /api/emails/{address}/folders) */
1628
+ listEmailFoldersByAddress(address: string): Promise<{
1629
+ folders?: ({
1630
+ id?: "inbox" | "archive" | "sent" | "drafts" | "spam" | "trash";
1631
+ total?: number;
1632
+ unread?: number;
1633
+ })[];
1634
+ views?: ({
1635
+ id?: "starred" | "all";
1636
+ total?: number;
1637
+ unread?: number;
1638
+ })[];
1639
+ capabilities?: Record<string, unknown>;
1640
+ }>;
892
1641
  /** List emails (GET /api/emails/{address}/messages) */
893
1642
  listEmailMessagesByAddress(address: string, query?: {
894
1643
  cursor?: string;
895
1644
  limit?: number;
896
1645
  direction?: "in" | "out" | "all";
1646
+ folder?: "inbox" | "archive" | "sent" | "spam" | "trash";
1647
+ view?: "starred" | "all";
897
1648
  since?: string;
898
1649
  from?: string;
899
1650
  to?: string;
900
1651
  subject?: string;
1652
+ q?: string;
1653
+ unread?: boolean;
1654
+ attachments?: boolean;
1655
+ spam?: boolean;
901
1656
  }): Promise<{
902
- messages?: {
1657
+ messages?: ({
903
1658
  id?: string;
1659
+ thread_key?: string;
1660
+ thread_aliases?: string[];
904
1661
  message_id?: string | null;
905
1662
  direction?: "in" | "out";
1663
+ folder?: "inbox" | "archive" | "sent" | "spam" | "trash";
1664
+ read?: boolean;
1665
+ starred?: boolean;
1666
+ answered?: boolean;
1667
+ forwarded?: boolean;
1668
+ spam_detected?: boolean;
1669
+ trashed_at?: string | null;
906
1670
  from?: string;
1671
+ avatar_url?: string | null;
907
1672
  to?: string;
908
1673
  cc?: string | null;
909
1674
  reply_to?: string | null;
@@ -911,22 +1676,21 @@ export declare class Domani {
911
1676
  text?: string;
912
1677
  in_reply_to?: string | null;
913
1678
  references?: string | null;
914
- status?: "queued" | "sent" | "delivered" | "delayed" | "bounced" | "failed" | "complained" | "suppressed";
915
- events?: {
916
- status?: string;
917
- detail?: Record<string, unknown> | null;
918
- created_at?: string;
919
- }[];
1679
+ status?: string;
1680
+ events?: Record<string, unknown>[];
920
1681
  created_at?: string;
921
- }[];
1682
+ })[];
922
1683
  next_cursor?: string | null;
923
- has_more?: boolean;
1684
+ }>;
1685
+ /** List your agent identities (GET /api/agents/identity) */
1686
+ listIdentities(): Promise<{
1687
+ identities?: AgentIdentity[];
924
1688
  }>;
925
1689
  /** List payment invoices (GET /api/billing/invoices) */
926
1690
  listInvoices(query?: {
927
1691
  limit?: number;
928
1692
  }): Promise<{
929
- invoices?: {
1693
+ invoices?: ({
930
1694
  id?: string;
931
1695
  number?: string | null;
932
1696
  status?: string;
@@ -937,7 +1701,7 @@ export declare class Domani {
937
1701
  created?: string;
938
1702
  hosted_invoice_url?: string | null;
939
1703
  invoice_pdf?: string | null;
940
- }[];
1704
+ })[];
941
1705
  has_more?: boolean;
942
1706
  hint?: string;
943
1707
  }>;
@@ -950,23 +1714,56 @@ export declare class Domani {
950
1714
  }[];
951
1715
  hint?: string;
952
1716
  }>;
1717
+ /** Incrementally synchronize one mailbox (GET /api/email/changes) */
1718
+ listMailboxChanges(query?: {
1719
+ mailbox_id: string;
1720
+ cursor?: string;
1721
+ limit?: number;
1722
+ }): Promise<{
1723
+ changes: MailboxChange[];
1724
+ next_cursor: string;
1725
+ has_more: boolean;
1726
+ requires_full_sync: boolean;
1727
+ reason?: "cursor_required" | "cursor_expired";
1728
+ }>;
1729
+ /** List app passwords (hosted) (GET /api/emails/{address}/credentials) */
1730
+ listMailboxCredentials(address: string): Promise<{
1731
+ mailbox?: string;
1732
+ credentials?: ({
1733
+ id?: string;
1734
+ label?: string;
1735
+ created_at?: string;
1736
+ last_used_at?: string | null;
1737
+ created_by?: {
1738
+ type?: "user" | "token" | "agent";
1739
+ id?: string;
1740
+ label?: string;
1741
+ } | null;
1742
+ })[];
1743
+ hint?: string;
1744
+ }>;
953
1745
  /** List all mailboxes (GET /api/email) */
954
1746
  listMailboxes(query?: {
955
1747
  domain?: string;
956
1748
  }): Promise<{
957
- mailboxes?: {
1749
+ mailboxes?: ({
958
1750
  id?: string;
959
1751
  address?: string;
960
1752
  slug?: string;
961
1753
  domain?: string;
962
1754
  message_count?: number;
963
- }[];
1755
+ access_role?: "viewer" | "responder" | "manager";
1756
+ effective_capabilities?: MailboxEffectiveCapabilities;
1757
+ storage_quota_bytes?: number | null;
1758
+ storage_used_bytes?: number | null;
1759
+ storage_measured_at?: string | null;
1760
+ })[];
964
1761
  }>;
965
1762
  /** List all mailboxes (GET /api/emails) */
966
1763
  listMailboxesByAddress(query?: {
967
1764
  domain?: string;
968
1765
  }): Promise<{
969
- mailboxes?: {
1766
+ mailboxes?: ({
970
1767
  id?: string;
971
1768
  address?: string;
972
1769
  slug?: string;
@@ -974,7 +1771,34 @@ export declare class Domani {
974
1771
  message_count?: number;
975
1772
  webhook_url?: string | null;
976
1773
  forward_to?: string | null;
977
- }[];
1774
+ workspace_id?: string | null;
1775
+ access_role?: "viewer" | "responder" | "manager";
1776
+ effective_capabilities?: MailboxEffectiveCapabilities;
1777
+ collaboration_enabled?: boolean;
1778
+ storage_quota_bytes?: number | null;
1779
+ storage_used_bytes?: number | null;
1780
+ storage_measured_at?: string | null;
1781
+ })[];
1782
+ }>;
1783
+ /** List inbound mail rules (GET /api/emails/{address}/rules) */
1784
+ listMailRules(address: string): Promise<{
1785
+ mailbox?: string;
1786
+ rules?: MailRule[];
1787
+ hint?: string;
1788
+ }>;
1789
+ /** List actionable mailbox conversations (GET /api/email/work-queue) */
1790
+ listMailWorkQueue(query?: {
1791
+ mailbox_ids: string;
1792
+ status?: "open" | "waiting" | "closed";
1793
+ assigned?: "mine" | "unassigned" | "all";
1794
+ limit?: number;
1795
+ scan_limit?: number;
1796
+ }): Promise<{
1797
+ items: ConversationWorkItem[];
1798
+ returned: number;
1799
+ scanned_messages: number;
1800
+ partial: boolean;
1801
+ scan_limit_per_mailbox: number;
978
1802
  }>;
979
1803
  /** List your negotiations (GET /api/negotiations) */
980
1804
  listNegotiations(query?: {
@@ -988,7 +1812,7 @@ export declare class Domani {
988
1812
  limit?: number;
989
1813
  cursor?: string;
990
1814
  }): Promise<{
991
- notifications?: {
1815
+ notifications?: ({
992
1816
  id?: string;
993
1817
  type?: string;
994
1818
  title?: string;
@@ -996,7 +1820,7 @@ export declare class Domani {
996
1820
  action_url?: string | null;
997
1821
  read?: boolean;
998
1822
  created_at?: string;
999
- }[];
1823
+ })[];
1000
1824
  has_more?: boolean;
1001
1825
  next_cursor?: string | null;
1002
1826
  }>;
@@ -1005,12 +1829,12 @@ export declare class Domani {
1005
1829
  cursor?: string;
1006
1830
  limit?: number;
1007
1831
  }): Promise<{
1008
- suppressions?: {
1832
+ suppressions?: ({
1009
1833
  address?: string;
1010
1834
  reason?: "hard_bounce" | "complaint" | "manual";
1011
1835
  source?: "resend" | "api";
1012
1836
  created_at?: string;
1013
- }[];
1837
+ })[];
1014
1838
  next_cursor?: string | null;
1015
1839
  hint?: string;
1016
1840
  }>;
@@ -1062,6 +1886,10 @@ export declare class Domani {
1062
1886
  }[];
1063
1887
  hint?: string;
1064
1888
  }>;
1889
+ /** List accessible workspaces (GET /api/workspaces) */
1890
+ listWorkspaces(): Promise<{
1891
+ workspaces?: WorkspaceSummary[];
1892
+ }>;
1065
1893
  /** Send a magic link sign-in email (POST /api/auth/login) */
1066
1894
  loginUser(body: {
1067
1895
  email: string;
@@ -1086,15 +1914,64 @@ export declare class Domani {
1086
1914
  markMessagesReadByAddress(address: string, body?: {
1087
1915
  message_ids: string[];
1088
1916
  read: boolean;
1089
- }): Promise<{
1090
- count?: number;
1091
- }>;
1917
+ idempotency_key?: string;
1918
+ }): Promise<LegacyMailboxOperationReceipt>;
1092
1919
  /** Mark notification as read (PATCH /api/notifications/{id}) */
1093
1920
  markNotificationRead(id: string, body: {
1094
1921
  read: boolean;
1095
1922
  }): Promise<{
1096
1923
  ok?: boolean;
1097
1924
  }>;
1925
+ /** Plan how to adopt an existing domain (GET /api/domains/adoption-plan) */
1926
+ planDomainAdoption(query?: {
1927
+ domain: string;
1928
+ }): Promise<{
1929
+ version: 1;
1930
+ domain: string;
1931
+ registered: boolean;
1932
+ account_state: "untracked" | "connected" | "managed" | "owned_by_another";
1933
+ recommended_action: "acquire" | "connect" | "transfer_preserving_dns" | "none";
1934
+ current: {
1935
+ registrar: string | null;
1936
+ registrar_url: string | null;
1937
+ expires_at: string | null;
1938
+ status: string[];
1939
+ nameservers: string[];
1940
+ dns_provider: string;
1941
+ dnssec_enabled: boolean;
1942
+ };
1943
+ options: {
1944
+ connect?: {
1945
+ available?: boolean;
1946
+ price?: 0;
1947
+ currency?: string;
1948
+ changes_registrar?: false;
1949
+ changes_nameservers?: false;
1950
+ next_action?: {
1951
+ method?: string;
1952
+ path?: string;
1953
+ };
1954
+ };
1955
+ transfer?: {
1956
+ available?: boolean;
1957
+ eligible?: boolean;
1958
+ price?: number | null;
1959
+ currency?: string;
1960
+ includes_renewal?: true;
1961
+ preserves_nameservers?: true;
1962
+ migrates_dns?: false;
1963
+ reason?: string;
1964
+ code?: string;
1965
+ eligible_at?: string;
1966
+ next_action?: {
1967
+ method?: string;
1968
+ path?: string;
1969
+ };
1970
+ };
1971
+ };
1972
+ invariants: string[];
1973
+ warnings: string[];
1974
+ }>;
1098
1975
  /** Provide EPP/auth code (seller) (PATCH /api/deals/{id}) */
1099
1976
  provideEppCode(id: string, body: {
1100
1977
  auth_code: string;
@@ -1114,6 +1991,10 @@ export declare class Domani {
1114
1991
  payment_chain?: "base" | "ethereum";
1115
1992
  years?: number;
1116
1993
  }): Promise<unknown>;
1994
+ /** Refresh a domain brief from live sources (POST /api/domain-briefs/{id}/refresh) */
1995
+ refreshDomainBrief(id: string): Promise<{
1996
+ brief: DomainBrief;
1997
+ }>;
1117
1998
  /** Create a new account (POST /api/auth/register) */
1118
1999
  registerUser(body: {
1119
2000
  email: string;
@@ -1127,6 +2008,19 @@ export declare class Domani {
1127
2008
  email?: string;
1128
2009
  };
1129
2010
  }>;
2011
+ /** Release this client's presence and compose lease (DELETE /api/email/collaboration/coordination) */
2012
+ releaseConversationPresence(body: {
2013
+ mailbox_id: string;
2014
+ thread_key: string;
2015
+ client_id: string;
2016
+ lease_id?: string;
2017
+ }): Promise<ConversationCoordinationSnapshot>;
2018
+ /** Release an agent identity (DELETE /api/agents/identity/{slug}) */
2019
+ releaseIdentity(slug: string): Promise<{
2020
+ success?: boolean;
2021
+ slug?: string;
2022
+ released?: boolean;
2023
+ }>;
1130
2024
  /** Remove saved payment method (DELETE /api/billing/card) */
1131
2025
  removeCard(): Promise<{
1132
2026
  removed?: boolean;
@@ -1139,6 +2033,10 @@ export declare class Domani {
1139
2033
  deleted?: boolean;
1140
2034
  hint?: string;
1141
2035
  }>;
2036
+ /** Remove a member mailbox permission (DELETE /api/workspaces/{id}/mailboxes/{mailboxId}/grants) */
2037
+ removeMailboxGrant(id: string, mailboxId: string, body: {
2038
+ membership_id: string;
2039
+ }): Promise<unknown>;
1142
2040
  /** Remove mailbox webhook (DELETE /api/emails/{address}/webhook) */
1143
2041
  removeMailboxWebhook(address: string): Promise<{
1144
2042
  address?: string;
@@ -1147,18 +2045,27 @@ export declare class Domani {
1147
2045
  has_webhook?: boolean;
1148
2046
  hint?: string;
1149
2047
  }>;
2048
+ /** Remove an inbound mail rule (DELETE /api/emails/{address}/rules/{ruleId}) */
2049
+ removeMailRule(address: string, ruleId: string): Promise<{
2050
+ id?: string;
2051
+ deleted?: boolean;
2052
+ hint?: string;
2053
+ }>;
1150
2054
  /** Remove a suppression (DELETE /api/suppressions/{address}) */
1151
2055
  removeSuppression(address: string): Promise<{
1152
2056
  address?: string;
1153
2057
  deleted?: boolean;
1154
2058
  hint?: string;
1155
2059
  }>;
2060
+ /** Remove a workspace member (DELETE /api/workspaces/{id}/members/{membershipId}) */
2061
+ removeWorkspaceMember(id: string, membershipId: string): Promise<unknown>;
1156
2062
  /** Renew a domain (POST /api/domains/{domain}/renew) */
1157
2063
  renewDomain(domain: string, body?: {
1158
2064
  years?: number;
1159
2065
  payment_method?: "card" | "usdc" | "balance";
1160
2066
  payment_tx?: string;
1161
2067
  payment_chain?: "base" | "ethereum";
2068
+ max_price?: number;
1162
2069
  }): Promise<{
1163
2070
  domain: string;
1164
2071
  renewed_years: number;
@@ -1168,19 +2075,46 @@ export declare class Domani {
1168
2075
  payment_method: string;
1169
2076
  payment_tx?: string;
1170
2077
  }>;
2078
+ /** Replay a webhook delivery (POST /api/webhooks/{id}/deliveries/{deliveryId}/replay) */
2079
+ replayWebhookDelivery(id: string, deliveryId: string, body: {
2080
+ idempotency_key: string;
2081
+ }): Promise<{
2082
+ delivery_id: string;
2083
+ original_delivery_id: string;
2084
+ event_type: string;
2085
+ status: "pending" | "delivered" | "failed";
2086
+ http_status?: number | null;
2087
+ attempts: number;
2088
+ idempotency_key: string;
2089
+ idempotent_replay: boolean;
2090
+ created_at: string;
2091
+ hint?: string;
2092
+ }>;
1171
2093
  /** Reply to a message (POST /api/emails/{address}/messages/{id}/reply) */
1172
2094
  replyToMessageByAddress(address: string, id: string, body?: {
1173
2095
  text?: string;
1174
2096
  html?: string;
1175
2097
  cc?: string | string[];
1176
2098
  all?: boolean;
2099
+ idempotency_key?: string;
2100
+ coordination?: {
2101
+ thread_key?: string;
2102
+ client_id: string;
2103
+ lease_id: string;
2104
+ expected_reply_version: number;
2105
+ };
1177
2106
  }): Promise<{
1178
2107
  id?: string;
1179
2108
  message_id?: string;
1180
2109
  from?: string;
1181
2110
  to?: string;
1182
2111
  status?: string;
2112
+ reply_version?: number;
1183
2113
  }>;
2114
+ /** Request a workspace ownership transfer (POST /api/workspaces/{id}/ownership-transfer) */
2115
+ requestWorkspaceOwnershipTransfer(id: string, body: {
2116
+ membership_id: string;
2117
+ }): Promise<unknown>;
1184
2118
  /** Resend contact email verification (POST /api/me/resend-verification) */
1185
2119
  resendEmailVerification(body?: {
1186
2120
  email?: string;
@@ -1218,17 +2152,34 @@ export declare class Domani {
1218
2152
  sources?: string[];
1219
2153
  capturedAt?: string;
1220
2154
  };
2155
+ dry_run?: boolean;
1221
2156
  }): Promise<{
1222
2157
  domain?: string;
1223
2158
  applied?: number;
1224
2159
  skipped?: number;
1225
2160
  recordCount?: number;
1226
2161
  errors?: string[];
2162
+ dry_run?: boolean;
2163
+ would_apply?: DnsRecord[];
2164
+ }>;
2165
+ /** Revoke an app password (hosted) (DELETE /api/emails/{address}/credentials/{id}) */
2166
+ revokeMailboxCredential(address: string, id: string): Promise<{
2167
+ id?: string;
2168
+ revoked?: boolean;
2169
+ hint?: string;
1227
2170
  }>;
1228
2171
  /** Revoke an API token (DELETE /api/tokens/{id}) */
1229
2172
  revokeToken(id: string): Promise<{
1230
2173
  success?: boolean;
1231
2174
  }>;
2175
+ /** Revoke an access grant and its credentials (DELETE /api/workspaces/{id}/access/grants/{grantId}) */
2176
+ revokeWorkspaceAccess(id: string, grantId: string, body?: {
2177
+ expected_version?: number;
2178
+ }): Promise<unknown>;
2179
+ /** Revoke a pending invitation (DELETE /api/workspaces/{id}/invitations/{invitationId}) */
2180
+ revokeWorkspaceInvitation(id: string, invitationId: string): Promise<unknown>;
2181
+ /** Revoke a pending ownership transfer (DELETE /api/workspaces/{id}/ownership-transfer/{transferId}) */
2182
+ revokeWorkspaceOwnershipTransfer(id: string, transferId: string): Promise<unknown>;
1232
2183
  /** Rotate webhook signing secret (POST /api/emails/{address}/webhook/rotate) */
1233
2184
  rotateMailboxWebhookSecret(address: string): Promise<{
1234
2185
  address?: string;
@@ -1270,7 +2221,7 @@ export declare class Domani {
1270
2221
  }>;
1271
2222
  /** Send an email (POST /api/emails/{address}/send) */
1272
2223
  sendEmailByAddress(address: string, body?: {
1273
- to: string;
2224
+ to: string | string[];
1274
2225
  cc?: string | string[];
1275
2226
  bcc?: string | string[];
1276
2227
  subject?: string;
@@ -1279,6 +2230,14 @@ export declare class Domani {
1279
2230
  reply_to?: string;
1280
2231
  in_reply_to?: string;
1281
2232
  references?: string;
2233
+ idempotency_key?: string;
2234
+ coordination?: {
2235
+ thread_key: string;
2236
+ client_id: string;
2237
+ lease_id: string;
2238
+ expected_reply_version: number;
2239
+ };
2240
+ allow_risky_content?: boolean;
1282
2241
  attachments?: {
1283
2242
  content: string;
1284
2243
  filename: string;
@@ -1291,6 +2250,8 @@ export declare class Domani {
1291
2250
  to?: string;
1292
2251
  status?: string;
1293
2252
  attachments_count?: number;
2253
+ suppressed?: string[];
2254
+ deliverability?: Record<string, unknown>;
1294
2255
  }>;
1295
2256
  /** Set domain catch-all (PUT /api/domains/{domain}/email/catch-all) */
1296
2257
  setCatchAll(domain: string, body: {
@@ -1307,6 +2268,7 @@ export declare class Domani {
1307
2268
  /** Set DNS records for a domain you own (PUT /api/domains/{domain}/dns) */
1308
2269
  setDnsRecords(domain: string, body: {
1309
2270
  records: DnsRecord[];
2271
+ zone_version?: string;
1310
2272
  }): Promise<{
1311
2273
  success?: boolean;
1312
2274
  domain?: string;
@@ -1321,6 +2283,11 @@ export declare class Domani {
1321
2283
  redirect_url?: string | null;
1322
2284
  permanent?: boolean;
1323
2285
  }>;
2286
+ /** Set a member mailbox permission (PUT /api/workspaces/{id}/mailboxes/{mailboxId}/grants) */
2287
+ setMailboxGrant(id: string, mailboxId: string, body: {
2288
+ membership_id: string;
2289
+ role: "viewer" | "responder" | "manager";
2290
+ }): Promise<unknown>;
1324
2291
  /** Set mailbox webhook (PUT /api/emails/{address}/webhook) */
1325
2292
  setMailboxWebhook(address: string, body: {
1326
2293
  url: string;
@@ -1358,6 +2325,21 @@ export declare class Domani {
1358
2325
  records?: DnsRecord[];
1359
2326
  hint?: string;
1360
2327
  }>;
2328
+ /** Plan or apply one access grant (PUT /api/workspaces/{id}/access) */
2329
+ setWorkspaceAccess(id: string, body: {
2330
+ mode: "plan" | "apply";
2331
+ subject: Record<string, unknown>;
2332
+ resource: Record<string, unknown>;
2333
+ profile: "viewer" | "responder" | "manager" | "draft_only" | "mail_client";
2334
+ policy?: {
2335
+ expires_at?: string | null;
2336
+ recipient_domains?: string[];
2337
+ max_recipients_per_message?: number;
2338
+ require_approval_for?: string[];
2339
+ };
2340
+ expected_version?: number;
2341
+ reason?: string;
2342
+ }): Promise<unknown>;
1361
2343
  /** Capture a DNS snapshot (POST /api/domains/{domain}/dns/snapshot) */
1362
2344
  snapshotDns(domain: string, body?: {
1363
2345
  extra_subdomains?: string[];
@@ -1389,6 +2371,24 @@ export declare class Domani {
1389
2371
  checked: number;
1390
2372
  iterations: number;
1391
2373
  }>;
2374
+ /** Create or replace a flat access group (PUT /api/workspaces/{id}/access/groups) */
2375
+ syncAccessGroup(id: string, body: {
2376
+ id?: string;
2377
+ name: string;
2378
+ description?: string | null;
2379
+ principals: ({
2380
+ type: "human" | "agent" | "service" | "token";
2381
+ id: string;
2382
+ label: string;
2383
+ })[];
2384
+ }): Promise<unknown>;
2385
+ /** Create or replace an explicit mailbox collection (PUT /api/workspaces/{id}/access/collections) */
2386
+ syncMailboxCollection(id: string, body: {
2387
+ id?: string;
2388
+ name: string;
2389
+ description?: string | null;
2390
+ mailbox_ids: string[];
2391
+ }): Promise<unknown>;
1392
2392
  /** Test mailbox webhook (POST /api/emails/{address}/webhook/test) */
1393
2393
  testMailboxWebhook(address: string): Promise<{
1394
2394
  address?: string;
@@ -1413,6 +2413,26 @@ export declare class Domani {
1413
2413
  preferred_payment_method?: string | null;
1414
2414
  hint?: string;
1415
2415
  }>;
2416
+ /** Dismiss or restore first-run guidance (PUT /api/me/activation) */
2417
+ updateActivationPreference(body: {
2418
+ dismissed_version: number;
2419
+ }): Promise<{
2420
+ dismissed_version: number;
2421
+ hint: string;
2422
+ }>;
2423
+ /** Assign or update a shared inbox conversation (PATCH /api/email/collaboration) */
2424
+ updateConversationState(body: {
2425
+ mailbox_id: string;
2426
+ thread_key: string;
2427
+ thread_aliases?: string[];
2428
+ subject?: string | null;
2429
+ status?: "open" | "waiting" | "closed";
2430
+ assignee?: {
2431
+ type?: "member" | "token" | "agent";
2432
+ id?: string;
2433
+ } | null;
2434
+ version?: number;
2435
+ }): Promise<ConversationState>;
1416
2436
  /** Update domain settings (PUT /api/domains/{domain}/settings) */
1417
2437
  updateDomainSettings(domain: string, body: {
1418
2438
  auto_renew?: boolean;
@@ -1425,6 +2445,26 @@ export declare class Domani {
1425
2445
  security_lock?: boolean;
1426
2446
  hint: string;
1427
2447
  }>;
2448
+ /** Apply a lifecycle action to messages (POST /api/emails/{address}/messages/actions) */
2449
+ updateEmailMessagesByAddress(address: string, body: {
2450
+ message_ids: string[];
2451
+ action: "move" | "mark_read" | "star" | "restore" | "delete_permanently";
2452
+ destination?: "inbox" | "archive" | "sent" | "spam" | "trash";
2453
+ read?: boolean;
2454
+ starred?: boolean;
2455
+ idempotency_key?: string;
2456
+ }): Promise<MailboxOperationReceipt>;
2457
+ /** Update an agent identity (PATCH /api/agents/identity/{slug}) */
2458
+ updateIdentity(slug: string, body: {
2459
+ name?: string;
2460
+ bio?: string;
2461
+ emoji?: string;
2462
+ email?: string;
2463
+ links?: {
2464
+ label?: string;
2465
+ url?: string;
2466
+ }[];
2467
+ }): Promise<AgentIdentity>;
1428
2468
  /** Update a domain listing (PATCH /api/domains/{domain}/for-sale) */
1429
2469
  updateListing(domain: string, body: {
1430
2470
  price?: number;
@@ -1446,6 +2486,7 @@ export declare class Domani {
1446
2486
  name?: string | null;
1447
2487
  webhook_url?: string | null;
1448
2488
  forward_to?: string | null;
2489
+ drop_spam?: boolean;
1449
2490
  }): Promise<{
1450
2491
  id?: string;
1451
2492
  address?: string;
@@ -1458,11 +2499,12 @@ export declare class Domani {
1458
2499
  }>;
1459
2500
  /** Update notification preferences (PUT /api/notifications/preferences) */
1460
2501
  updateNotificationPreferences(body: {
1461
- preferences: {
2502
+ preferences?: ({
1462
2503
  category: "domains" | "transfers" | "marketplace" | "email" | "inquiries";
1463
2504
  channel: "in_app" | "email";
1464
2505
  enabled: boolean;
1465
- }[];
2506
+ })[];
2507
+ expiry_alert_days?: number[];
1466
2508
  }): Promise<{
1467
2509
  ok?: boolean;
1468
2510
  }>;
@@ -1488,6 +2530,14 @@ export declare class Domani {
1488
2530
  active?: boolean;
1489
2531
  hint?: string;
1490
2532
  }>;
2533
+ /** Rename a workspace (PATCH /api/workspaces/{id}) */
2534
+ updateWorkspace(id: string, body: {
2535
+ name: string;
2536
+ }): Promise<unknown>;
2537
+ /** Change a member role (PATCH /api/workspaces/{id}/members/{membershipId}) */
2538
+ updateWorkspaceMember(id: string, membershipId: string, body: {
2539
+ role: "admin" | "member";
2540
+ }): Promise<unknown>;
1491
2541
  /** Verify that a provider connection is working (POST /api/domains/{domain}/verify) */
1492
2542
  verifyConnection(domain: string, body: {
1493
2543
  target?: string;