@vindentech/api-client 0.3.0-next.17 → 0.3.0-next.19

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 (56) hide show
  1. package/dist/generated/_all.d.ts +2 -0
  2. package/dist/generated/_all.d.ts.map +1 -1
  3. package/dist/generated/_all.js +2 -0
  4. package/dist/generated/_all.js.map +1 -1
  5. package/dist/generated/_permissions.d.ts +64 -1
  6. package/dist/generated/_permissions.d.ts.map +1 -1
  7. package/dist/generated/_permissions.js +16 -0
  8. package/dist/generated/_permissions.js.map +1 -1
  9. package/dist/generated/index.schemas.d.ts +559 -19
  10. package/dist/generated/index.schemas.d.ts.map +1 -1
  11. package/dist/generated/index.schemas.js +174 -4
  12. package/dist/generated/index.schemas.js.map +1 -1
  13. package/dist/generated/me-notification-preferences/me-notification-preferences.d.ts +22 -1
  14. package/dist/generated/me-notification-preferences/me-notification-preferences.d.ts.map +1 -1
  15. package/dist/generated/me-notification-preferences/me-notification-preferences.js +11 -0
  16. package/dist/generated/me-notification-preferences/me-notification-preferences.js.map +1 -1
  17. package/dist/generated/notification-debug/notification-debug.d.ts +34 -0
  18. package/dist/generated/notification-debug/notification-debug.d.ts.map +1 -0
  19. package/dist/generated/notification-debug/notification-debug.js +13 -0
  20. package/dist/generated/notification-debug/notification-debug.js.map +1 -0
  21. package/dist/generated/notification-dispatches/notification-dispatches.d.ts +51 -1
  22. package/dist/generated/notification-dispatches/notification-dispatches.d.ts.map +1 -1
  23. package/dist/generated/notification-dispatches/notification-dispatches.js +20 -0
  24. package/dist/generated/notification-dispatches/notification-dispatches.js.map +1 -1
  25. package/dist/generated/notification-preferences/notification-preferences.d.ts +26 -1
  26. package/dist/generated/notification-preferences/notification-preferences.d.ts.map +1 -1
  27. package/dist/generated/notification-preferences/notification-preferences.js +11 -0
  28. package/dist/generated/notification-preferences/notification-preferences.js.map +1 -1
  29. package/dist/generated/notification-requests/notification-requests.d.ts +22 -1
  30. package/dist/generated/notification-requests/notification-requests.d.ts.map +1 -1
  31. package/dist/generated/notification-requests/notification-requests.js +9 -0
  32. package/dist/generated/notification-requests/notification-requests.js.map +1 -1
  33. package/dist/generated/notification-settings/notification-settings.d.ts +36 -1
  34. package/dist/generated/notification-settings/notification-settings.d.ts.map +1 -1
  35. package/dist/generated/notification-settings/notification-settings.js +23 -0
  36. package/dist/generated/notification-settings/notification-settings.js.map +1 -1
  37. package/dist/generated/orders/orders.d.ts +15 -1
  38. package/dist/generated/orders/orders.d.ts.map +1 -1
  39. package/dist/generated/orders/orders.js +12 -0
  40. package/dist/generated/orders/orders.js.map +1 -1
  41. package/dist/generated/pickup-label/pickup-label.d.ts +23 -0
  42. package/dist/generated/pickup-label/pickup-label.d.ts.map +1 -0
  43. package/dist/generated/pickup-label/pickup-label.js +12 -0
  44. package/dist/generated/pickup-label/pickup-label.js.map +1 -0
  45. package/dist/generated/sender-identities/sender-identities.d.ts +93 -1
  46. package/dist/generated/sender-identities/sender-identities.d.ts.map +1 -1
  47. package/dist/generated/sender-identities/sender-identities.js +40 -0
  48. package/dist/generated/sender-identities/sender-identities.js.map +1 -1
  49. package/dist/generated/service-points/service-points.d.ts +20 -9
  50. package/dist/generated/service-points/service-points.d.ts.map +1 -1
  51. package/dist/generated/service-points/service-points.js.map +1 -1
  52. package/dist/generated/suppressions/suppressions.d.ts +55 -1
  53. package/dist/generated/suppressions/suppressions.d.ts.map +1 -1
  54. package/dist/generated/suppressions/suppressions.js +22 -0
  55. package/dist/generated/suppressions/suppressions.js.map +1 -1
  56. package/package.json +1 -1
@@ -581,6 +581,60 @@ export interface OrderTransitionResultDto {
581
581
  newStatus: OrderTransitionResultDtoNewStatus;
582
582
  transitionedAt: string;
583
583
  }
584
+ export interface ReceiveAtWarehouseDto {
585
+ /** The container the collected goods were unloaded onto at the warehouse. */
586
+ containerId: string;
587
+ }
588
+ /**
589
+ * Always RECEIVED.
590
+ */
591
+ export type ReceivedAtWarehousePodDtoStatus = typeof ReceivedAtWarehousePodDtoStatus[keyof typeof ReceivedAtWarehousePodDtoStatus];
592
+ export declare const ReceivedAtWarehousePodDtoStatus: {
593
+ readonly RECEIVED: "RECEIVED";
594
+ };
595
+ export interface ReceivedAtWarehousePodDto {
596
+ podId: string;
597
+ /** Always RECEIVED. */
598
+ status: ReceivedAtWarehousePodDtoStatus;
599
+ /** The MOVE movement appended for this pod. */
600
+ movementId: string;
601
+ }
602
+ /**
603
+ * Always IN_TRANSIT.
604
+ */
605
+ export type ReceiveAtWarehouseResultDtoOldStatus = typeof ReceiveAtWarehouseResultDtoOldStatus[keyof typeof ReceiveAtWarehouseResultDtoOldStatus];
606
+ export declare const ReceiveAtWarehouseResultDtoOldStatus: {
607
+ readonly IN_TRANSIT: "IN_TRANSIT";
608
+ };
609
+ /**
610
+ * Always RECEIVED.
611
+ */
612
+ export type ReceiveAtWarehouseResultDtoNewStatus = typeof ReceiveAtWarehouseResultDtoNewStatus[keyof typeof ReceiveAtWarehouseResultDtoNewStatus];
613
+ export declare const ReceiveAtWarehouseResultDtoNewStatus: {
614
+ readonly RECEIVED: "RECEIVED";
615
+ };
616
+ export interface ReceiveAtWarehouseResultDto {
617
+ salesOrderId: string;
618
+ /** Always IN_TRANSIT. */
619
+ oldStatus: ReceiveAtWarehouseResultDtoOldStatus;
620
+ /** Always RECEIVED. */
621
+ newStatus: ReceiveAtWarehouseResultDtoNewStatus;
622
+ /** ISO-8601 receipt timestamp. */
623
+ receivedAt: string;
624
+ /** The receiving container. */
625
+ containerId: string;
626
+ /**
627
+ * The container's current position, or null when it is unplaced.
628
+ * @nullable
629
+ */
630
+ positionId: string | null;
631
+ /** The order's warehouse after the command — backfilled from the container when the order had none. */
632
+ warehouseId: string;
633
+ /** Every IDENTIFIED pod that was moved onto the container. */
634
+ placedPods: ReceivedAtWarehousePodDto[];
635
+ /** True when this response is an idempotent replay. */
636
+ idempotent: boolean;
637
+ }
584
638
  export interface DeliverAllDto {
585
639
  /** An existing file_asset id (kind POD) to link to the leg as proof_of_delivery. */
586
640
  proofOfDeliveryFileId?: string;
@@ -1594,6 +1648,77 @@ export interface UpdateIdentityNumberDto {
1594
1648
  /** Swedish personal identity number — YYMMDDNNNN, YYMMDD-NNNN, YYMMDD+NNNN, YYYYMMDDNNNN or YYYYMMDD-NNNN, with a valid Luhn check digit. Stored digits-only. Never returned by any endpoint. */
1595
1649
  personalIdentityNumber: string;
1596
1650
  }
1651
+ export interface ServicePointAddressDto {
1652
+ /** @nullable */
1653
+ street: string | null;
1654
+ /** @nullable */
1655
+ postalCode: string | null;
1656
+ /** @nullable */
1657
+ city: string | null;
1658
+ /** @nullable */
1659
+ municipality: string | null;
1660
+ /** ISO 3166-1 alpha-2 */
1661
+ countryCode: string;
1662
+ /**
1663
+ * Where to find the point once on site (e.g. which part of a building).
1664
+ * @nullable
1665
+ */
1666
+ specificLocation: string | null;
1667
+ /** @nullable */
1668
+ latitude: number | null;
1669
+ /** @nullable */
1670
+ longitude: number | null;
1671
+ }
1672
+ export interface ServicePointOpeningHoursDto {
1673
+ /** Provider-supplied day name. */
1674
+ dayOfWeek: string;
1675
+ /**
1676
+ * Local time, provider-formatted.
1677
+ * @nullable
1678
+ */
1679
+ opens: string | null;
1680
+ /**
1681
+ * Local time, provider-formatted.
1682
+ * @nullable
1683
+ */
1684
+ closes: string | null;
1685
+ open24h: boolean;
1686
+ closed: boolean;
1687
+ }
1688
+ export type ServicePointDtoProvider = typeof ServicePointDtoProvider[keyof typeof ServicePointDtoProvider];
1689
+ export declare const ServicePointDtoProvider: {
1690
+ readonly POSTI: "POSTI";
1691
+ };
1692
+ export type ServicePointDtoType = typeof ServicePointDtoType[keyof typeof ServicePointDtoType];
1693
+ export declare const ServicePointDtoType: {
1694
+ readonly PARCEL_LOCKER: "PARCEL_LOCKER";
1695
+ readonly PICKUP_POINT: "PICKUP_POINT";
1696
+ };
1697
+ export interface ServicePointDto {
1698
+ /** Provider-scoped opaque id. This is the value to send back as the cart's servicePointId. */
1699
+ id: string;
1700
+ provider: ServicePointDtoProvider;
1701
+ /** Display name for the picker. */
1702
+ name: string;
1703
+ type: ServicePointDtoType;
1704
+ /**
1705
+ * Host business the point sits inside, when it is not standalone.
1706
+ * @nullable
1707
+ */
1708
+ careOf: string | null;
1709
+ /**
1710
+ * Provider routing code for this point — what a shipping/label call needs to address a parcel here.
1711
+ * @nullable
1712
+ */
1713
+ routingServiceCode: string | null;
1714
+ /**
1715
+ * Distance from the searched location, when the provider reports one.
1716
+ * @nullable
1717
+ */
1718
+ distanceInMeters: number | null;
1719
+ address: ServicePointAddressDto;
1720
+ openingHours: ServicePointOpeningHoursDto[];
1721
+ }
1597
1722
  export interface AnonymousSessionDto {
1598
1723
  /** Opaque bearer token for the anonymous session. Send it as the X-Session-Token header on guest-capable endpoints. Shown once — it is stored only as a hash. */
1599
1724
  sessionToken: string;
@@ -5366,6 +5491,45 @@ export interface UnidentifyResultDto {
5366
5491
  /** True when this response replays a previous run of the key. */
5367
5492
  idempotent: boolean;
5368
5493
  }
5494
+ export interface PickupLabelProductDto {
5495
+ productId: string;
5496
+ /**
5497
+ * Display name (placeholder_name ?? name).
5498
+ * @nullable
5499
+ */
5500
+ name: string | null;
5501
+ /** @nullable */
5502
+ primaryImageStorageKey: string | null;
5503
+ /**
5504
+ * The product_image row backing primaryImageStorageKey, when one exists.
5505
+ * @nullable
5506
+ */
5507
+ productImageId: string | null;
5508
+ }
5509
+ /**
5510
+ * Routing verdict for the scanned label. `returning` is the only outcome carrying data.
5511
+ */
5512
+ export type PickupLabelLookupDtoOutcome = typeof PickupLabelLookupDtoOutcome[keyof typeof PickupLabelLookupDtoOutcome];
5513
+ export declare const PickupLabelLookupDtoOutcome: {
5514
+ readonly not_found: "not_found";
5515
+ readonly returning: "returning";
5516
+ readonly label_in_use: "label_in_use";
5517
+ readonly other_customer: "other_customer";
5518
+ };
5519
+ /**
5520
+ * @nullable
5521
+ */
5522
+ export type PickupLabelLookupDtoProduct = PickupLabelProductDto | null;
5523
+ export interface PickupLabelLookupDto {
5524
+ /** Routing verdict for the scanned label. `returning` is the only outcome carrying data. */
5525
+ outcome: PickupLabelLookupDtoOutcome;
5526
+ /** @nullable */
5527
+ product: PickupLabelLookupDtoProduct;
5528
+ /** @nullable */
5529
+ itemId: string | null;
5530
+ /** @nullable */
5531
+ podId: string | null;
5532
+ }
5369
5533
  export interface CreateDamageReportDto {
5370
5534
  /** The item the condition lives on (G1). */
5371
5535
  itemId: string;
@@ -8042,6 +8206,44 @@ export interface PreferenceDto {
8042
8206
  source: string;
8043
8207
  updatedAt: string;
8044
8208
  }
8209
+ export interface PreferenceSubjectDto {
8210
+ /** The subject's Keycloak sub. Mutually exclusive with `address`. */
8211
+ userSub?: string;
8212
+ /** The subject's email or phone. Mutually exclusive with `userSub`. */
8213
+ address?: string;
8214
+ }
8215
+ export type UpsertPreferenceDtoCategory = typeof UpsertPreferenceDtoCategory[keyof typeof UpsertPreferenceDtoCategory];
8216
+ export declare const UpsertPreferenceDtoCategory: {
8217
+ readonly marketing: "marketing";
8218
+ readonly operational: "operational";
8219
+ readonly transactional: "transactional";
8220
+ readonly billing: "billing";
8221
+ readonly security: "security";
8222
+ readonly system: "system";
8223
+ };
8224
+ /**
8225
+ * `null` applies the choice to every channel for the category.
8226
+ * @nullable
8227
+ */
8228
+ export type UpsertPreferenceDtoChannel = typeof UpsertPreferenceDtoChannel[keyof typeof UpsertPreferenceDtoChannel] | null;
8229
+ export declare const UpsertPreferenceDtoChannel: {
8230
+ readonly email: "email";
8231
+ readonly sms: "sms";
8232
+ readonly push: "push";
8233
+ readonly webhook: "webhook";
8234
+ };
8235
+ export interface UpsertPreferenceDto {
8236
+ /** Staff surface only. On `/v1/me` the subject is the caller's JWT `sub` and this field is rejected. */
8237
+ subject?: PreferenceSubjectDto;
8238
+ category: UpsertPreferenceDtoCategory;
8239
+ /**
8240
+ * `null` applies the choice to every channel for the category.
8241
+ * @nullable
8242
+ */
8243
+ channel: UpsertPreferenceDtoChannel;
8244
+ /** `false` is the opt-out. `true` is an explicit restored opt-in, which is kept as a row so the trail shows the choice was reversed. */
8245
+ isEnabled: boolean;
8246
+ }
8045
8247
  export type AddressVerdictDtoCategory = typeof AddressVerdictDtoCategory[keyof typeof AddressVerdictDtoCategory];
8046
8248
  export declare const AddressVerdictDtoCategory: {
8047
8249
  readonly marketing: "marketing";
@@ -8142,6 +8344,28 @@ export interface PaginatedSuppressionsDto {
8142
8344
  /** Effective rows skipped applied. */
8143
8345
  offset: number;
8144
8346
  }
8347
+ export type CreateSuppressionDtoChannel = typeof CreateSuppressionDtoChannel[keyof typeof CreateSuppressionDtoChannel];
8348
+ export declare const CreateSuppressionDtoChannel: {
8349
+ readonly email: "email";
8350
+ readonly sms: "sms";
8351
+ readonly push: "push";
8352
+ readonly webhook: "webhook";
8353
+ };
8354
+ export interface CreateSuppressionDto {
8355
+ channel: CreateSuppressionDtoChannel;
8356
+ /** Email or E.164 phone; normalized server-side. */
8357
+ address: string;
8358
+ /** When the block lapses. Omit for a permanent block. */
8359
+ expiresAt?: string;
8360
+ /** Why this address is being blocked. Recorded in the admin action. */
8361
+ note?: string;
8362
+ }
8363
+ export interface ReleaseSuppressionDto {
8364
+ /** Why the block is being lifted. Recorded in the admin action. */
8365
+ reason: string;
8366
+ /** Required to release a hard_bounce / complaint / sms_stop / provider_suppression row. Recorded in the admin action. */
8367
+ acknowledgeReputationRisk?: boolean;
8368
+ }
8145
8369
  export type NotificationDispatchDtoChannel = typeof NotificationDispatchDtoChannel[keyof typeof NotificationDispatchDtoChannel];
8146
8370
  export declare const NotificationDispatchDtoChannel: {
8147
8371
  readonly email: "email";
@@ -8403,6 +8627,55 @@ export interface NotificationDispatchDetailDto {
8403
8627
  bodyRetained: boolean;
8404
8628
  deliveryEvents: DeliveryEventDto[];
8405
8629
  }
8630
+ /**
8631
+ * Transient `failed` only. Any other status is refused.
8632
+ */
8633
+ export type ResendBatchFilterDtoStatus = typeof ResendBatchFilterDtoStatus[keyof typeof ResendBatchFilterDtoStatus];
8634
+ export declare const ResendBatchFilterDtoStatus: {
8635
+ readonly failed: "failed";
8636
+ };
8637
+ export interface ResendBatchFilterDto {
8638
+ /** Transient `failed` only. Any other status is refused. */
8639
+ status: ResendBatchFilterDtoStatus;
8640
+ /** Narrow to one event. */
8641
+ eventKey?: string;
8642
+ /** Required. The window is what makes the count and the resend partition-pruned. */
8643
+ createdFrom: string;
8644
+ createdTo: string;
8645
+ }
8646
+ export interface ResendBatchDto {
8647
+ filter: ResendBatchFilterDto;
8648
+ /** The count the operator was shown. The server re-counts and refuses the batch if the number moved — a bulk send against a number nobody saw is the failure mode this exists to prevent. */
8649
+ expectedCount: number;
8650
+ /** Explicit confirmation (04 §11). Anything but `true` is refused. */
8651
+ confirm: boolean;
8652
+ }
8653
+ export interface ResendBatchResultDto {
8654
+ /** New dispatch rows created. */
8655
+ created: number;
8656
+ /** How many of those landed terminal because the re-run gate blocked them (now-suppressed or opted-out addresses). They are created and auditable, but nothing will be sent. */
8657
+ skippedByGate: number;
8658
+ }
8659
+ /**
8660
+ * What the re-run send-time gate decided. `suppressed` / `skipped_opt_out` mean the resend landed as a terminal row and no message will go out — the UI cannot punch through a hard block.
8661
+ */
8662
+ export type ResendResultDtoGateOutcome = typeof ResendResultDtoGateOutcome[keyof typeof ResendResultDtoGateOutcome];
8663
+ export declare const ResendResultDtoGateOutcome: {
8664
+ readonly queued: "queued";
8665
+ readonly suppressed: "suppressed";
8666
+ readonly skipped_opt_out: "skipped_opt_out";
8667
+ };
8668
+ export interface ResendResultDto {
8669
+ /** The NEW dispatch. The original is never mutated. */
8670
+ notificationDispatchId: string;
8671
+ /** What the re-run send-time gate decided. `suppressed` / `skipped_opt_out` mean the resend landed as a terminal row and no message will go out — the UI cannot punch through a hard block. */
8672
+ gateOutcome: ResendResultDtoGateOutcome;
8673
+ /**
8674
+ * Why the gate blocked it, in the vocabulary the dispatch row records.
8675
+ * @nullable
8676
+ */
8677
+ gateReason: string | null;
8678
+ }
8406
8679
  export type DispatchStatusCountDtoStatus = typeof DispatchStatusCountDtoStatus[keyof typeof DispatchStatusCountDtoStatus];
8407
8680
  export declare const DispatchStatusCountDtoStatus: {
8408
8681
  readonly queued: "queued";
@@ -8458,6 +8731,10 @@ export interface NotificationRequestDto {
8458
8731
  /** Total dispatches fanned out from this request. */
8459
8732
  dispatchCount: number;
8460
8733
  }
8734
+ export interface ReprocessResultDto {
8735
+ /** The outbox key of the re-emitted event. A reprocess puts the original event back on the pipeline rather than writing a request row: Phase A creates the new request when it consumes the event, so this key — not a request id — is what correlates the command to the fan-out it caused. The original request is never mutated. */
8736
+ outboxEventKey: string;
8737
+ }
8461
8738
  export interface HealthRateWindowDto {
8462
8739
  numerator: number;
8463
8740
  denominator: number;
@@ -8494,6 +8771,10 @@ export interface NotificationSettingsDto {
8494
8771
  /** @nullable */
8495
8772
  smsSpendCeiling: number | null;
8496
8773
  }
8774
+ export interface SendPauseDto {
8775
+ /** Why sending is being paused or resumed. Recorded in the admin action. */
8776
+ reason: string;
8777
+ }
8497
8778
  export type SenderIdentityDtoChannel = typeof SenderIdentityDtoChannel[keyof typeof SenderIdentityDtoChannel];
8498
8779
  export declare const SenderIdentityDtoChannel: {
8499
8780
  readonly email: "email";
@@ -8573,6 +8854,257 @@ export interface SenderIdentityDetailDto {
8573
8854
  /** DKIM/DNS records to publish for an email identity. Empty until the SES read lands with the verify command in the write slice. */
8574
8855
  dnsRecords: SenderDnsRecordDto[];
8575
8856
  }
8857
+ export type CreateSenderIdentityDtoChannel = typeof CreateSenderIdentityDtoChannel[keyof typeof CreateSenderIdentityDtoChannel];
8858
+ export declare const CreateSenderIdentityDtoChannel: {
8859
+ readonly email: "email";
8860
+ readonly sms: "sms";
8861
+ readonly push: "push";
8862
+ readonly webhook: "webhook";
8863
+ };
8864
+ export type CreateSenderIdentityDtoProvider = typeof CreateSenderIdentityDtoProvider[keyof typeof CreateSenderIdentityDtoProvider];
8865
+ export declare const CreateSenderIdentityDtoProvider: {
8866
+ readonly ses: "ses";
8867
+ readonly aws_eum_sms: "aws_eum_sms";
8868
+ readonly apns: "apns";
8869
+ readonly fcm: "fcm";
8870
+ };
8871
+ export interface CreateSenderIdentityDto {
8872
+ channel: CreateSenderIdentityDtoChannel;
8873
+ provider: CreateSenderIdentityDtoProvider;
8874
+ /** Email address or domain for SES; sender ID / origination number for SMS. */
8875
+ identityValue: string;
8876
+ /** The From name recipients see. */
8877
+ displayName?: string;
8878
+ /** SES configuration-set name / EUM config set or pool ARN. An opaque pointer to a Pulumi-provisioned resource — never a credential. May be filled in later by platform tooling. */
8879
+ providerConfigRef?: string;
8880
+ /** SES identity ARN / EUM pool or sender-ID ARN. Same rules as `providerConfigRef`. */
8881
+ providerIdentityArn?: string;
8882
+ }
8883
+ export interface UpdateSenderIdentityDto {
8884
+ /** @nullable */
8885
+ displayName?: string | null;
8886
+ /** Make this the channel's default. The swap is atomic — the partial UNIQUE admits one default per channel, so the previous default is demoted in the same transaction. Passing `false` on the current default is refused: a channel with enabled rules and no default has no sender. */
8887
+ isDefault?: boolean;
8888
+ }
8889
+ /**
8890
+ * The event payload, exactly as the producer would emit it.
8891
+ */
8892
+ export type SimulateDtoPayload = {
8893
+ [key: string]: unknown;
8894
+ };
8895
+ export interface SimulateDto {
8896
+ eventKey: string;
8897
+ /** Pin a contract version. Defaults to the event's active version. */
8898
+ eventVersion?: number;
8899
+ /** The event payload, exactly as the producer would emit it. */
8900
+ payload: SimulateDtoPayload;
8901
+ /** The tenant to simulate against. Must be the tenant this host resolves to — enterprise tenants have their own hostname and their own database, so simulating another tenant means calling that tenant's API, not passing its id here. */
8902
+ tenantId?: string;
8903
+ }
8904
+ export interface SimulationContractValidationDto {
8905
+ valid: boolean;
8906
+ /** One line per offending instance path. */
8907
+ errors: string[];
8908
+ }
8909
+ export type SimulationMatchedRuleDtoChannel = typeof SimulationMatchedRuleDtoChannel[keyof typeof SimulationMatchedRuleDtoChannel];
8910
+ export declare const SimulationMatchedRuleDtoChannel: {
8911
+ readonly email: "email";
8912
+ readonly sms: "sms";
8913
+ readonly push: "push";
8914
+ readonly webhook: "webhook";
8915
+ };
8916
+ export type SimulationMatchedRuleDtoCategory = typeof SimulationMatchedRuleDtoCategory[keyof typeof SimulationMatchedRuleDtoCategory];
8917
+ export declare const SimulationMatchedRuleDtoCategory: {
8918
+ readonly marketing: "marketing";
8919
+ readonly operational: "operational";
8920
+ readonly transactional: "transactional";
8921
+ readonly billing: "billing";
8922
+ readonly security: "security";
8923
+ readonly system: "system";
8924
+ };
8925
+ export interface SimulationMatchedRuleDto {
8926
+ ruleId: string;
8927
+ channel: SimulationMatchedRuleDtoChannel;
8928
+ category: SimulationMatchedRuleDtoCategory;
8929
+ /** Whether fan-out would act on this rule. */
8930
+ fired: boolean;
8931
+ /**
8932
+ * Why it did not fire. `rule_disabled` is the only reason in v1.
8933
+ * @nullable
8934
+ */
8935
+ skipReason: string | null;
8936
+ }
8937
+ export type SimulationRecipientDtoDelivery = typeof SimulationRecipientDtoDelivery[keyof typeof SimulationRecipientDtoDelivery];
8938
+ export declare const SimulationRecipientDtoDelivery: {
8939
+ readonly to: "to";
8940
+ readonly cc: "cc";
8941
+ readonly bcc: "bcc";
8942
+ };
8943
+ /**
8944
+ * The `resolution_reason` snapshot: spec index, kind, and the role/path it named.
8945
+ */
8946
+ export type SimulationRecipientDtoResolutionReason = {
8947
+ [key: string]: unknown;
8948
+ };
8949
+ export interface SimulationRecipientDto {
8950
+ ruleId: string;
8951
+ /** Normalized, as the dispatch row would record it. */
8952
+ address: string;
8953
+ /** messaging.recipient_kind — which spec produced it. */
8954
+ kind: string;
8955
+ delivery: SimulationRecipientDtoDelivery;
8956
+ /** The `resolution_reason` snapshot: spec index, kind, and the role/path it named. */
8957
+ resolutionReason: SimulationRecipientDtoResolutionReason;
8958
+ /**
8959
+ * `unresolvable_recipient` / `invalid_recipient` when the spec produced nothing usable. Fan-out writes a terminal `failed` dispatch for these rather than dropping them.
8960
+ * @nullable
8961
+ */
8962
+ error: string | null;
8963
+ }
8964
+ export type SimulationPolicyDecisionDtoCategory = typeof SimulationPolicyDecisionDtoCategory[keyof typeof SimulationPolicyDecisionDtoCategory];
8965
+ export declare const SimulationPolicyDecisionDtoCategory: {
8966
+ readonly marketing: "marketing";
8967
+ readonly operational: "operational";
8968
+ readonly transactional: "transactional";
8969
+ readonly billing: "billing";
8970
+ readonly security: "security";
8971
+ readonly system: "system";
8972
+ };
8973
+ export type SimulationPolicyDecisionDtoChannel = typeof SimulationPolicyDecisionDtoChannel[keyof typeof SimulationPolicyDecisionDtoChannel];
8974
+ export declare const SimulationPolicyDecisionDtoChannel: {
8975
+ readonly email: "email";
8976
+ readonly sms: "sms";
8977
+ readonly push: "push";
8978
+ readonly webhook: "webhook";
8979
+ };
8980
+ export type SimulationPolicyDecisionDtoVerdict = typeof SimulationPolicyDecisionDtoVerdict[keyof typeof SimulationPolicyDecisionDtoVerdict];
8981
+ export declare const SimulationPolicyDecisionDtoVerdict: {
8982
+ readonly send: "send";
8983
+ readonly suppressed: "suppressed";
8984
+ readonly skipped_opt_out: "skipped_opt_out";
8985
+ };
8986
+ /**
8987
+ * The matrix rule that decided it.
8988
+ */
8989
+ export type SimulationPolicyDecisionDtoMatrixRule = typeof SimulationPolicyDecisionDtoMatrixRule[keyof typeof SimulationPolicyDecisionDtoMatrixRule];
8990
+ export declare const SimulationPolicyDecisionDtoMatrixRule: {
8991
+ readonly hard_bounce_always_wins: "hard_bounce_always_wins";
8992
+ readonly complaint_always_wins: "complaint_always_wins";
8993
+ readonly sms_stop_legal_hard_block: "sms_stop_legal_hard_block";
8994
+ readonly manual_suppression: "manual_suppression";
8995
+ readonly provider_suppression: "provider_suppression";
8996
+ readonly preference_opt_out: "preference_opt_out";
8997
+ readonly billing_category_opt_out_ignored: "billing_category_opt_out_ignored";
8998
+ readonly category_not_preference_suppressible: "category_not_preference_suppressible";
8999
+ readonly no_block: "no_block";
9000
+ };
9001
+ export interface SimulationPolicyDecisionDto {
9002
+ address: string;
9003
+ category: SimulationPolicyDecisionDtoCategory;
9004
+ channel: SimulationPolicyDecisionDtoChannel;
9005
+ verdict: SimulationPolicyDecisionDtoVerdict;
9006
+ /** The matrix rule that decided it. */
9007
+ matrixRule: SimulationPolicyDecisionDtoMatrixRule;
9008
+ /**
9009
+ * The suppression or preference row behind the verdict.
9010
+ * @nullable
9011
+ */
9012
+ recordId: string | null;
9013
+ }
9014
+ export type SimulationTemplateCandidateDtoScope = typeof SimulationTemplateCandidateDtoScope[keyof typeof SimulationTemplateCandidateDtoScope];
9015
+ export declare const SimulationTemplateCandidateDtoScope: {
9016
+ readonly bound: "bound";
9017
+ readonly org_override: "org_override";
9018
+ readonly tenant_default: "tenant_default";
9019
+ readonly system: "system";
9020
+ };
9021
+ export interface SimulationTemplateCandidateDto {
9022
+ scope: SimulationTemplateCandidateDtoScope;
9023
+ notificationTemplateId: string;
9024
+ notificationTemplateVersionId: string;
9025
+ locale: string;
9026
+ /**
9027
+ * Lower is a better locale match; null means the locale is not an acceptable fallback.
9028
+ * @nullable
9029
+ */
9030
+ localeRank: number | null;
9031
+ chosen: boolean;
9032
+ }
9033
+ export interface SimulationTemplateResolutionDto {
9034
+ ruleId: string;
9035
+ /** @nullable */
9036
+ notificationTemplateId: string | null;
9037
+ /** @nullable */
9038
+ notificationTemplateVersionId: string | null;
9039
+ /** @nullable */
9040
+ locale: string | null;
9041
+ /** Every published candidate considered, in precedence order — bound, then org override, tenant default, system — with the winner marked. The answer to "why that template?". */
9042
+ fallbackChain: SimulationTemplateCandidateDto[];
9043
+ }
9044
+ export interface SimulationRenderedPreviewDto {
9045
+ ruleId: string;
9046
+ subject: string;
9047
+ html: string;
9048
+ text: string;
9049
+ /** @nullable */
9050
+ smsSegments: number | null;
9051
+ sanitizationWarnings: SanitizationWarningDto[];
9052
+ /** Non-fatal field render errors. */
9053
+ renderErrors: string[];
9054
+ }
9055
+ export type SimulationVerdictDtoChannel = typeof SimulationVerdictDtoChannel[keyof typeof SimulationVerdictDtoChannel];
9056
+ export declare const SimulationVerdictDtoChannel: {
9057
+ readonly email: "email";
9058
+ readonly sms: "sms";
9059
+ readonly push: "push";
9060
+ readonly webhook: "webhook";
9061
+ };
9062
+ export type SimulationVerdictDtoWouldWriteStatus = typeof SimulationVerdictDtoWouldWriteStatus[keyof typeof SimulationVerdictDtoWouldWriteStatus];
9063
+ export declare const SimulationVerdictDtoWouldWriteStatus: {
9064
+ readonly queued: "queued";
9065
+ readonly rendering: "rendering";
9066
+ readonly render_failed: "render_failed";
9067
+ readonly suppressed: "suppressed";
9068
+ readonly skipped_opt_out: "skipped_opt_out";
9069
+ readonly skipped_disabled: "skipped_disabled";
9070
+ readonly skipped_cost_capped: "skipped_cost_capped";
9071
+ readonly sent: "sent";
9072
+ readonly delivered: "delivered";
9073
+ readonly opened: "opened";
9074
+ readonly clicked: "clicked";
9075
+ readonly soft_bounced: "soft_bounced";
9076
+ readonly hard_bounced: "hard_bounced";
9077
+ readonly complaint: "complaint";
9078
+ readonly failed: "failed";
9079
+ readonly dead_lettered: "dead_lettered";
9080
+ readonly permanently_failed: "permanently_failed";
9081
+ };
9082
+ export interface SimulationVerdictDto {
9083
+ ruleId: string;
9084
+ address: string;
9085
+ channel: SimulationVerdictDtoChannel;
9086
+ wouldWriteStatus: SimulationVerdictDtoWouldWriteStatus;
9087
+ /**
9088
+ * The `error_message` the row would carry, when the status is not `queued`.
9089
+ * @nullable
9090
+ */
9091
+ detail: string | null;
9092
+ }
9093
+ export interface SimulationResultDto {
9094
+ eventKey: string;
9095
+ eventVersion: number;
9096
+ contractValidation: SimulationContractValidationDto;
9097
+ matchedRules: SimulationMatchedRuleDto[];
9098
+ resolvedRecipients: SimulationRecipientDto[];
9099
+ /** After (address, channel) dedup, keeping the strongest delivery level — the set fan-out would actually create rows for. */
9100
+ dedupedRecipients: SimulationRecipientDto[];
9101
+ policyDecisions: SimulationPolicyDecisionDto[];
9102
+ templateResolution: SimulationTemplateResolutionDto[];
9103
+ renderedPreview: SimulationRenderedPreviewDto[];
9104
+ verdicts: SimulationVerdictDto[];
9105
+ /** True when this tenant's sending is paused. Phase A still fans out; Phase B would park every `queued` row until the pause lifts — so the verdicts above are what WOULD be written, not what would be delivered today. */
9106
+ sendingPaused: boolean;
9107
+ }
8576
9108
  export type OrdersControllerListV1Params = {
8577
9109
  /**
8578
9110
  * Max rows to return (1–100).
@@ -8764,6 +9296,33 @@ export type CarriersControllerListMethodsV1Params = {
8764
9296
  */
8765
9297
  isActive?: boolean;
8766
9298
  };
9299
+ export type ServicePointsControllerListV1Params = {
9300
+ /**
9301
+ * Postal code to search near.
9302
+ */
9303
+ zipCode: string;
9304
+ /**
9305
+ * ISO 3166-1 alpha-2
9306
+ */
9307
+ countryCode: string;
9308
+ /**
9309
+ * Defaults to POSTI, the only provider wired today.
9310
+ */
9311
+ provider?: ServicePointsControllerListV1Provider;
9312
+ /**
9313
+ * Narrow to one kind of service point. Omit for both.
9314
+ */
9315
+ type?: ServicePointsControllerListV1Type;
9316
+ };
9317
+ export type ServicePointsControllerListV1Provider = typeof ServicePointsControllerListV1Provider[keyof typeof ServicePointsControllerListV1Provider];
9318
+ export declare const ServicePointsControllerListV1Provider: {
9319
+ readonly POSTI: "POSTI";
9320
+ };
9321
+ export type ServicePointsControllerListV1Type = typeof ServicePointsControllerListV1Type[keyof typeof ServicePointsControllerListV1Type];
9322
+ export declare const ServicePointsControllerListV1Type: {
9323
+ readonly PARCEL_LOCKER: "PARCEL_LOCKER";
9324
+ readonly PICKUP_POINT: "PICKUP_POINT";
9325
+ };
8767
9326
  export type CheckoutControllerAvailableServicesV1Params = {
8768
9327
  /**
8769
9328
  * Recipient zip code — resolves the service zone
@@ -9318,25 +9877,6 @@ export declare const LookupsControllerListV1Kind: {
9318
9877
  readonly 'transport-slot-kind': "transport-slot-kind";
9319
9878
  readonly 'organization-type': "organization-type";
9320
9879
  };
9321
- export type ServicePointsControllerListV1Params = {
9322
- /**
9323
- * Postal code to search near.
9324
- */
9325
- zipCode?: string;
9326
- /**
9327
- * ISO 3166-1 alpha-2
9328
- */
9329
- countryCode?: string;
9330
- provider?: ServicePointsControllerListV1Provider;
9331
- /**
9332
- * Provider-specific service-point type filter.
9333
- */
9334
- type?: string;
9335
- };
9336
- export type ServicePointsControllerListV1Provider = typeof ServicePointsControllerListV1Provider[keyof typeof ServicePointsControllerListV1Provider];
9337
- export declare const ServicePointsControllerListV1Provider: {
9338
- readonly POSTI: "POSTI";
9339
- };
9340
9880
  export type IntegrationsControllerGetByIdV1200 = StripeAccountDto | FortnoxAccountDto;
9341
9881
  export type BillingAccountsControllerListAccountsV1Params = {
9342
9882
  /**