@dossier-wiki/os-sdk 0.7.0 → 1.3.1-staging.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/service.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { AccountResponseDto, AddFaceImageDto, TagFieldKey, TagCatalogueEntry, TagCatalogueEntryInput, UpdateTagCatalogueEntryInput, TagFieldEnforcement, SetTagEnforcementInput, ApiKeyResponseDto, ArchiveIdentificationDocumentInput, BulkCurrencyStatusInput, BulkUpsertOtherInformationInput, CustomerOtherInformationEntry, BulkCurrencyStatusResponseDto, CommentResourceType, ConfirmUploadDto, ConfirmedMatchDto, ConstantResponseDto, CounterpartyResponseDto, CreateAccountDto, CreateApiKeyDto, CreateConstantDto, CreateCounterpartyDto, CreateCurrencyInput, CreateEntityDto, CreateEventDefinitionDto, CreateIdentificationDocumentInput, CreateIndividualDto, CreateNoteDto, CreateProductDto, CreateRiskAssessmentDto, CreateCustomerRiskAssessmentDto, CreateRuleDto, CreateStakeholderDto, CreateWebhookDto, CurrencyResponseDto, CursorPaginationQuery, DeleteConstantQuery, DeleteIdentificationDocumentResponse, DeviceResponseDto, DeviceSummaryDto, EntityResponseDto, EventDefinitionResponseDto, ExpectedActivityResponseDto, FileResponseDto, GetCustomerQuery, IdentificationDocument, IndividualResponseDto, IngestEventDto, IngestEventResponse, IngestTransactionAsyncResponse, IngestTransactionDto, IngestTransactionResponse, InitializeSetupDto, InvitationDetailsDto, LinkCounterpartyDto, ListAccountsResponse, ListCounterpartiesResponse, ListCurrenciesQuery, ListEntitiesResponse, ListIdentificationDocumentsQuery, ListIndividualsResponse, NoteResponseDto, PatchTransactionStatusDto, PlatformComment, PlatformConfirmUploadDto, PlatformConfirmUploadResponseDto, PlatformCreateCommentDto, PlatformRequestUploadUrlDto, PlatformUpdateCommentDto, PlatformUploadUrlResponseDto, ProductResponseDto, PushExchangeRatesDto, PushExchangeRatesResponseDto, RegisterDeviceDto, RequestUploadUrlDto, ResetConfigResponseDto, ResetMemberPasswordDto, RiskAssessmentResponseDto, CustomerRiskAssessmentResponseDto, RuleResponseDto, ScreeningResultDto, SetupInitializeResponseDto, SetupStatusDto, StakeholderResponseDto, SyncSnapshotDto, SyncDriftDto, CreateSyncSnapshotInput, SyncKeyQuery, SyncConfig, SyncValidationResult, SyncPlanResult, SyncApplyResult, SyncExportQuery, TokenResponseDto, TransitionIdentificationDocumentStatusInput, UploadUrlResponseDto, UpdateAccountDto, UpdateConstantDto, UpdateCounterpartyDto, UpdateCurrencyInput, UpdateDeviceTrustDto, UpdateEntityDto, UpdateEventDefinitionDto, UpdateExpectedActivityDto, UpdateFaceImageDto, UpdateIdentificationDocumentDto, UpdateIdentificationDocumentInput, UpdateIndividualDto, UpdateNoteDto, UpsertOtherInformationValueInput, UpdateProductDto, UpdateRiskRatingDto, UpdateCustomerStatusDto, UpdateCustomerStatusResponse, UpdateRuleDto, UpdateStakeholderDto, UpdateWebhookDto, WebhookResponseDto } from './types.js';
1
+ import type { AlertWorkflowVersion, RestoreAlertWorkflowInput, AlertWorkflowExperienceSettings, SaveAlertWorkflowExperienceInput, AlertWorkflowSettings, SaveAlertWorkflowInput, WorkflowAlertType } from "./types.js";
2
+ import type { AccountResponseDto, AddFaceImageDto, AlertResourceDto, AlertResourceRefDto, AlertResponseDto, CreateCustomAlertDto, CreateCustomAlertTypeDto, CustomAlertTypeResponseDto, UpdateAlertNotesDto, UpdateCustomAlertTypeDto, TagFieldKey, TagCatalogueEntry, TagGroup, TagGroupInput, UpdateTagGroupInput, RegroupReport, TagCatalogueEntryInput, UpdateTagCatalogueEntryInput, ApiKeyResponseDto, ArchiveIdentificationDocumentInput, BulkCurrencyStatusInput, BulkUpsertOtherInformationInput, CustomerOtherInformationEntry, BulkCurrencyStatusResponseDto, CommentResourceType, ConfirmUploadDto, ConfirmedMatchDto, ConstantResponseDto, ChangeResourceStateInput, CreateStateDefinitionInput, CounterpartyResponseDto, CreateAccountDto, CreateApiKeyDto, CreateConstantDto, CreateCounterpartyDto, CreateCurrencyInput, CreateEntityInput, CreateEventDefinitionDto, CreateIdentificationDocumentInput, CreateIndividualInput, CreateNoteDto, CreateProductDto, CreateRiskAssessmentDto, CreateCustomerRiskAssessmentDto, CreateRuleDto, CreateStakeholderDto, CreateWebhookDto, CurrencyResponseDto, CursorPaginationQuery, DeleteConstantQuery, DeleteIdentificationDocumentResponse, DeviceResponseDto, DeviceMergeResponseDto, MergeDeviceDto, DeviceSummaryDto, EntityResponseDto, EntityCreatedResponseDto, CreateCustomerOptions, EventDefinitionResponseDto, ExpectedActivityResponseDto, FileResponseDto, GetCustomerQuery, IdentificationDocument, IndividualResponseDto, IndividualCreatedResponseDto, IngestEventDto, IngestEventResponse, IngestTransactionAsyncResponse, IngestTransactionAttemptDto, IngestTransactionAttemptResponse, ListTransactionAttemptsInput, TransactionAttemptDto, TransactionAttemptPage, AlertAttemptEvidence, TenantBehaviorSettings, UpdateTenantBehaviorSettingsInput, IngestTransactionDto, IngestTransactionResponse, InitializeSetupDto, InvitationDetailsDto, LinkCounterpartyDto, MergeCounterpartiesDto, ListAccountsResponse, ListCounterpartiesResponse, ListCurrenciesQuery, ListEntitiesResponse, ListIdentificationDocumentsQuery, ListIndividualsResponse, NoteResponseDto, PatchTransactionStatusDto, TransactionResponseDto, PaymentInstrumentDto, CreatePaymentInstrumentDto, UpdatePaymentInstrumentDto, LinkPaymentInstrumentAccountDto, LinkPaymentInstrumentCustomerDto, PaymentInstrumentAccountRelationshipDto, PaymentInstrumentCustomerRelationshipDto, PlatformComment, PlatformConfirmUploadDto, PlatformConfirmUploadResponseDto, PlatformCreateCommentDto, PlatformRequestUploadUrlDto, PlatformUpdateCommentDto, PlatformUploadUrlResponseDto, ProductResponseDto, PushExchangeRatesDto, PushExchangeRatesResponseDto, RegisterDeviceDto, RequestUploadUrlDto, ResetConfigResponseDto, ResetMemberPasswordDto, RiskAssessmentResponseDto, CustomerRiskAssessmentResponseDto, RuleResponseDto, RuleVersionResponseDto, RuleAnalyticsResponseDto, ScreeningResultDto, ScreeningHistoryEntryDto, StartKycSessionResponseDto, KycSessionDto, ScreeningMatchResultDto, SimulateRulesDto, SimulationReportDto, SetupInitializeResponseDto, SetupStatusDto, StakeholderResponseDto, SyncSnapshotDto, SyncDriftDto, CreateSyncSnapshotInput, SyncKeyQuery, ListConstantsQuery, ResourceStateDto, ResourceStateHistoryDto, StateDefinitionDto, StateResourceType, SyncConfig, SyncValidationResult, SyncPlanResult, SyncApplyResult, SyncExportQuery, TokenResponseDto, TransitionIdentificationDocumentStatusInput, UploadUrlResponseDto, UpdateAccountDto, UpdateConstantDto, UpdateCounterpartyDto, UpdateCurrencyInput, UpdateDeviceTrustDto, UpdateEntityDto, UpdateEventDefinitionDto, UpdateExpectedActivityDto, UpdateFaceImageDto, UpdateIdentificationDocumentDto, UpdateIdentificationDocumentInput, UpdateIndividualDto, UpdateNoteDto, UpsertOtherInformationValueInput, UpdateProductDto, UpdateRiskRatingDto, UpdateCustomerStatusDto, UpdateCustomerStatusResponse, ArchiveCustomerDto, ArchiveCustomerResponse, UpdateRuleDto, UpdateStakeholderDto, UpdateWebhookDto, WebhookResponseDto, BulkCustomListImportResultDto, CreateCustomScreeningListInput, CustomListEntryDto, CustomListEntryInput, CustomListEntryListResponse, CustomScreeningListDto, CustomScreeningListListResponse, UpdateCustomListEntryInput, UpdateCustomScreeningListInput, AssignmentPolicyResponseDto, CreateAssignmentPolicyDto, UpdateAssignmentPolicyDto, ReorderAssignmentPoliciesDto, TeamRefDto, TeamDto, CreateTeamDto, UpdateTeamDto, TeamMemberIdsDto, CustomerAssignmentInput, BulkCustomerAssignmentInput, CustomerAssignmentResponse, BulkCustomerAssignmentResult, SessionDto, UpdateSessionDto, ChannelEndpointDto, UpdateChannelEndpointDto, Branch, BranchListResponse, CreateBranchInput, UpdateBranchInput, Employee, EmployeeListResponse, CreateEmployeeInput, UpdateEmployeeInput, CreateRiskSignalInput, ListRiskSignalsQuery, RiskSignal, RiskSignalListResponse, PartyRelationship, PartyRelationshipPartyType, PartyRelationshipType, CreatePartyRelationshipInput, CreatePartyRelationshipTypeInput } from './types.js';
2
3
  export interface DossiersOSAPIServiceOptions {
3
4
  /** Base URL of the OS API host, e.g. `https://sandbox-os.dossiers.wiki`. The `/v1` prefix is added by the SDK. */
4
5
  baseUrl: string;
@@ -17,6 +18,7 @@ type RequestOptions = {
17
18
  query?: Record<string, unknown> | object;
18
19
  };
19
20
  type RequestFn = <T>(method: HttpMethod, path: string, opts?: RequestOptions) => Promise<T>;
21
+ type BinaryRequestFn = (path: string) => Promise<Uint8Array>;
20
22
  export declare class DossiersOSAPIService {
21
23
  private readonly apiKey;
22
24
  private readonly baseUrl;
@@ -28,17 +30,41 @@ export declare class DossiersOSAPIService {
28
30
  readonly accounts: AccountsResource;
29
31
  readonly counterparties: CounterpartiesResource;
30
32
  readonly devices: DevicesResource;
33
+ readonly paymentInstruments: PaymentInstrumentsResource;
34
+ readonly sessions: SessionsResource;
35
+ readonly channelEndpoints: ChannelEndpointsResource;
31
36
  readonly transactions: TransactionsResource;
37
+ readonly transactionAttempts: TransactionAttemptsResource;
38
+ readonly behaviorSettings: BehaviorSettingsResource;
32
39
  readonly events: EventsResource;
40
+ readonly riskSignals: RiskSignalsResource;
41
+ readonly employees: EmployeesResource;
42
+ readonly branches: BranchesResource;
33
43
  readonly exchangeRates: ExchangeRatesResource;
44
+ readonly states: StatesResource;
34
45
  readonly identificationDocuments: IdentificationDocumentsResource;
35
46
  readonly alerts: AlertsResource;
36
47
  readonly platform: PlatformResource;
37
48
  readonly config: ConfigResource;
38
49
  readonly setup: SetupResource;
39
50
  readonly settings: SettingsResource;
51
+ readonly customLists: CustomListsResource;
52
+ readonly teams: TeamsResource;
53
+ readonly reports: ReportsResource;
54
+ readonly partyRelationships: PartyRelationshipsResource;
40
55
  constructor(options: DossiersOSAPIServiceOptions);
41
56
  private request;
57
+ /** GET a binary body (PDF reports). Errors are parsed the same way as JSON requests. */
58
+ private requestBinary;
59
+ }
60
+ export declare class PartyRelationshipsResource {
61
+ private readonly req;
62
+ constructor(req: RequestFn);
63
+ listTypes(): Promise<PartyRelationshipType[]>;
64
+ createType(input: CreatePartyRelationshipTypeInput): Promise<PartyRelationshipType>;
65
+ list(partyType: PartyRelationshipPartyType, partyId: string): Promise<PartyRelationship[]>;
66
+ create(input: CreatePartyRelationshipInput): Promise<PartyRelationship>;
67
+ end(id: string): Promise<PartyRelationship>;
42
68
  }
43
69
  /**
44
70
  * Scoped view of `/v1/platform/v1/comments` for a single resourceType.
@@ -89,7 +115,12 @@ export declare class IndividualsResource {
89
115
  readonly otherInformation: CustomerOtherInformationResource;
90
116
  constructor(req: RequestFn);
91
117
  list(query?: CursorPaginationQuery): Promise<ListIndividualsResponse>;
92
- create(input: CreateIndividualDto): Promise<IndividualResponseDto>;
118
+ /**
119
+ * `POST /v1/customers/individuals` — create an individual. Pass
120
+ * `{ screening: 'sync' }` to run the INITIAL screening before the call
121
+ * returns; the result and its matches then arrive under `screening`.
122
+ */
123
+ create(input: CreateIndividualInput, options?: CreateCustomerOptions): Promise<IndividualCreatedResponseDto>;
93
124
  get(customerId: string, query?: GetCustomerQuery): Promise<IndividualResponseDto>;
94
125
  update(customerId: string, input: UpdateIndividualDto): Promise<IndividualResponseDto>;
95
126
  }
@@ -118,7 +149,12 @@ export declare class EntitiesResource {
118
149
  readonly otherInformation: CustomerOtherInformationResource;
119
150
  constructor(req: RequestFn);
120
151
  list(query?: CursorPaginationQuery): Promise<ListEntitiesResponse>;
121
- create(input: CreateEntityDto): Promise<EntityResponseDto>;
152
+ /**
153
+ * `POST /v1/customers/entities` — create an entity. Pass
154
+ * `{ screening: 'sync' }` to run the INITIAL screening before the call
155
+ * returns; the result and its matches then arrive under `screening`.
156
+ */
157
+ create(input: CreateEntityInput, options?: CreateCustomerOptions): Promise<EntityCreatedResponseDto>;
122
158
  get(customerId: string, query?: GetCustomerQuery): Promise<EntityResponseDto>;
123
159
  update(customerId: string, input: UpdateEntityDto): Promise<EntityResponseDto>;
124
160
  }
@@ -137,15 +173,62 @@ export declare class EntityIdentificationDocumentsResource {
137
173
  create(customerId: string, input: CreateIdentificationDocumentInput): Promise<IdentificationDocument>;
138
174
  }
139
175
  export declare class CustomersResource {
176
+ private readonly req;
140
177
  readonly notes: CustomerNotesResource;
141
178
  readonly files: CustomerFilesResource;
142
179
  readonly screening: CustomerScreeningResource;
180
+ readonly kyc: CustomerKycResource;
143
181
  readonly riskRating: CustomerRiskRatingResource;
144
182
  readonly status: CustomerStatusResource;
145
183
  readonly riskAssessments: CustomerRiskAssessmentsResource;
146
184
  readonly expectedActivity: CustomerExpectedActivityResource;
147
185
  readonly devices: CustomerDevicesResource;
186
+ readonly assignment: CustomerAssignmentResource;
187
+ constructor(req: RequestFn);
188
+ /**
189
+ * `POST /v1/customers/{customerId}/archive` — archive a customer
190
+ * (organization owner/admin only, irreversible). Frees the customer's
191
+ * external ID for reuse and makes the record read-only.
192
+ */
193
+ archive(customerId: string, input?: ArchiveCustomerDto): Promise<ArchiveCustomerResponse>;
194
+ }
195
+ export declare class CustomerAssignmentResource {
196
+ private readonly req;
197
+ constructor(req: RequestFn);
198
+ /**
199
+ * `POST /v1/customers/{customerId}/assignment` — add users/teams to a
200
+ * customer's standing assignment (additive; never silently removes).
201
+ */
202
+ assign(customerId: string, input: CustomerAssignmentInput): Promise<CustomerAssignmentResponse>;
203
+ /**
204
+ * `DELETE /v1/customers/{customerId}/assignment` — remove users/teams from
205
+ * a customer's standing assignment.
206
+ */
207
+ unassign(customerId: string, input: CustomerAssignmentInput): Promise<CustomerAssignmentResponse>;
208
+ /**
209
+ * `POST /v1/customers/assignment` — assign many customers to the same
210
+ * users/teams. Customers that already carry the target are skipped.
211
+ */
212
+ assignMany(input: BulkCustomerAssignmentInput): Promise<BulkCustomerAssignmentResult>;
213
+ }
214
+ export declare class TeamsResource {
215
+ private readonly req;
148
216
  constructor(req: RequestFn);
217
+ /**
218
+ * Active teams. `tags` is an any-of filter over the team's `team.tags`
219
+ * catalogue values (repeated as `?tags=a&tags=b`).
220
+ */
221
+ list(query?: {
222
+ search?: string;
223
+ tags?: string[];
224
+ }): Promise<TeamRefDto[]>;
225
+ get(id: string): Promise<TeamDto>;
226
+ create(input: CreateTeamDto): Promise<TeamDto>;
227
+ update(id: string, input: UpdateTeamDto): Promise<TeamDto>;
228
+ archive(id: string): Promise<TeamDto>;
229
+ delete(id: string): Promise<boolean>;
230
+ addMembers(id: string, input: TeamMemberIdsDto): Promise<TeamDto>;
231
+ removeMembers(id: string, input: TeamMemberIdsDto): Promise<TeamDto>;
149
232
  }
150
233
  export declare class CustomerNotesResource {
151
234
  private readonly req;
@@ -168,8 +251,69 @@ export declare class CustomerScreeningResource {
168
251
  private readonly req;
169
252
  constructor(req: RequestFn);
170
253
  trigger(customerId: string): Promise<ScreeningResultDto>;
254
+ /**
255
+ * `GET /v1/customers/{customerId}/screening-history` — every screening run
256
+ * for the customer, most recent first. `limit` caps the number of entries
257
+ * returned (default 50 server-side).
258
+ */
259
+ listHistory(customerId: string, params?: {
260
+ limit?: number;
261
+ }): Promise<ScreeningHistoryEntryDto[]>;
262
+ /**
263
+ * `GET /v1/customers/{customerId}/screening-history/latest` — the most
264
+ * recent screening run, or `null` if the customer has never been screened.
265
+ */
266
+ getLast(customerId: string): Promise<ScreeningHistoryEntryDto | null>;
267
+ /**
268
+ * `GET /v1/customers/{customerId}/screening-results` — every match for the
269
+ * customer with its current disposition (true positives = `CONFIRMED`,
270
+ * false positives = `FALSE_POSITIVE`, plus undecided `PENDING`, which
271
+ * also covers matches a workflow reviewer marked inconclusive). Pass
272
+ * `disposition` to filter (e.g. `['CONFIRMED', 'FALSE_POSITIVE']`).
273
+ */
274
+ listResults(customerId: string, params?: {
275
+ disposition?: Array<'PENDING' | 'CONFIRMED' | 'FALSE_POSITIVE'>;
276
+ }): Promise<ScreeningMatchResultDto[]>;
277
+ /**
278
+ * `GET /v1/customers/{customerId}/confirmed-matches` — confirmed
279
+ * (true-positive) matches only. Alias for `listResults` filtered to
280
+ * `CONFIRMED`, kept for backwards compatibility.
281
+ */
171
282
  listConfirmedMatches(customerId: string): Promise<ConfirmedMatchDto[]>;
172
283
  }
284
+ /**
285
+ * KYC verification sessions for a customer. A session is an asynchronous,
286
+ * customer-driven flow: `start()` returns a hosted `sessionUrl` the customer
287
+ * visits; completion arrives out-of-band (provider webhook) or can be pulled
288
+ * with `refresh()`.
289
+ */
290
+ export declare class CustomerKycResource {
291
+ private readonly req;
292
+ constructor(req: RequestFn);
293
+ /**
294
+ * `POST /v1/customers/{customerId}/kyc/sessions` — start a KYC session with
295
+ * the organization's active provider. Hand the returned `sessionUrl` to the
296
+ * customer.
297
+ */
298
+ start(customerId: string): Promise<StartKycSessionResponseDto>;
299
+ /**
300
+ * `GET /v1/customers/{customerId}/kyc/sessions` — list a customer's KYC
301
+ * sessions, newest first.
302
+ */
303
+ list(customerId: string): Promise<KycSessionDto[]>;
304
+ /**
305
+ * `POST /v1/customers/{customerId}/kyc/sessions/{sessionId}/refresh` — pull
306
+ * the latest provider state for a session and persist it.
307
+ */
308
+ refresh(customerId: string, sessionId: string): Promise<KycSessionDto>;
309
+ /**
310
+ * `DELETE /v1/customers/{customerId}/kyc/sessions/{sessionId}` — cancel the
311
+ * session at the provider and remove the local record.
312
+ */
313
+ delete(customerId: string, sessionId: string): Promise<{
314
+ deletedId: string;
315
+ }>;
316
+ }
173
317
  export declare class CustomerRiskRatingResource {
174
318
  private readonly req;
175
319
  constructor(req: RequestFn);
@@ -226,6 +370,11 @@ export declare class CounterpartiesResource {
226
370
  update(counterpartyId: string, input: UpdateCounterpartyDto): Promise<CounterpartyResponseDto>;
227
371
  link(counterpartyId: string, input: LinkCounterpartyDto): Promise<CounterpartyResponseDto>;
228
372
  unlink(counterpartyId: string, input: LinkCounterpartyDto): Promise<CounterpartyResponseDto>;
373
+ /**
374
+ * Merge `input.sourceId` into `counterpartyId` (the survivor). Linked records
375
+ * move across and the source stays as a MERGED tombstone.
376
+ */
377
+ merge(counterpartyId: string, input: MergeCounterpartiesDto): Promise<CounterpartyResponseDto>;
229
378
  }
230
379
  export declare class CounterpartyRiskAssessmentsResource {
231
380
  private readonly req;
@@ -243,6 +392,34 @@ export declare class DevicesResource {
243
392
  readonly comments: ResourceCommentsProxy;
244
393
  constructor(req: RequestFn);
245
394
  get(deviceId: string): Promise<DeviceResponseDto>;
395
+ /** Canonicalize the source device into the target without deleting history. */
396
+ merge(targetDeviceId: string, input: MergeDeviceDto): Promise<DeviceMergeResponseDto>;
397
+ }
398
+ export declare class PaymentInstrumentsResource {
399
+ private readonly req;
400
+ constructor(req: RequestFn);
401
+ list(): Promise<PaymentInstrumentDto[]>;
402
+ get(id: string): Promise<PaymentInstrumentDto>;
403
+ create(input: CreatePaymentInstrumentDto): Promise<PaymentInstrumentDto>;
404
+ update(id: string, input: UpdatePaymentInstrumentDto): Promise<PaymentInstrumentDto>;
405
+ linkAccount(id: string, input: LinkPaymentInstrumentAccountDto): Promise<PaymentInstrumentAccountRelationshipDto>;
406
+ unlinkAccount(id: string, relationshipId: string, validTo?: string): Promise<PaymentInstrumentAccountRelationshipDto>;
407
+ linkCustomer(id: string, input: LinkPaymentInstrumentCustomerDto): Promise<PaymentInstrumentCustomerRelationshipDto>;
408
+ unlinkCustomer(id: string, relationshipId: string, validTo?: string): Promise<PaymentInstrumentCustomerRelationshipDto>;
409
+ }
410
+ export declare class SessionsResource {
411
+ private readonly req;
412
+ constructor(req: RequestFn);
413
+ list(): Promise<SessionDto[]>;
414
+ get(id: string): Promise<SessionDto>;
415
+ update(id: string, input: UpdateSessionDto): Promise<SessionDto>;
416
+ }
417
+ export declare class ChannelEndpointsResource {
418
+ private readonly req;
419
+ constructor(req: RequestFn);
420
+ list(): Promise<ChannelEndpointDto[]>;
421
+ get(id: string): Promise<ChannelEndpointDto>;
422
+ update(id: string, input: UpdateChannelEndpointDto): Promise<ChannelEndpointDto>;
246
423
  }
247
424
  export declare class TransactionsResource {
248
425
  private readonly req;
@@ -252,12 +429,153 @@ export declare class TransactionsResource {
252
429
  ingest(input: IngestTransactionDto): Promise<IngestTransactionResponse | IngestTransactionAsyncResponse>;
253
430
  /** `PATCH /v1/transactions` — patch a transaction's terminal status. */
254
431
  patchStatus(input: PatchTransactionStatusDto): Promise<unknown>;
432
+ /**
433
+ * Read back a stored transaction. By default `reference` is your own
434
+ * `transactionId`; pass `{ by: 'id' }` to look up the internal UUID
435
+ * returned by `ingest()`.
436
+ */
437
+ get(reference: string, opts?: {
438
+ by?: 'transactionId' | 'id';
439
+ }): Promise<TransactionResponseDto>;
440
+ }
441
+ export declare class TransactionAttemptsResource {
442
+ private readonly req;
443
+ constructor(req: RequestFn);
444
+ /**
445
+ * `POST /v1/transaction-attempts` — retain a failed, blocked, or unknown
446
+ * operation as behavioural history. This does not trigger rule evaluation.
447
+ */
448
+ ingest(input: IngestTransactionAttemptDto): Promise<IngestTransactionAttemptResponse>;
449
+ /** List retained attempts using an opaque, stable cursor. Requires `config:read`. */
450
+ list(input?: ListTransactionAttemptsInput): Promise<TransactionAttemptPage>;
451
+ /** Read one retained attempt by its database id. Requires `config:read`. */
452
+ get(id: string): Promise<TransactionAttemptDto>;
453
+ }
454
+ export declare class BehaviorSettingsResource {
455
+ private readonly req;
456
+ constructor(req: RequestFn);
457
+ get(): Promise<TenantBehaviorSettings>;
458
+ update(input: UpdateTenantBehaviorSettingsInput): Promise<TenantBehaviorSettings>;
255
459
  }
256
460
  export declare class EventsResource {
257
461
  private readonly req;
258
462
  constructor(req: RequestFn);
463
+ /**
464
+ * `POST /v1/events` — store a behavioral event.
465
+ *
466
+ * Every event is about exactly one resource: pass
467
+ * `resource: { type, id }`. A bare top-level `customerId` is still
468
+ * accepted as the legacy spelling of `resource: { type: 'CUSTOMER', id }`,
469
+ * and `resource` wins when both are present; an event naming neither is
470
+ * rejected with 400.
471
+ *
472
+ * Supply `input.eventId` (your unique identifier) to make retries safe:
473
+ * resubmitting the same `eventId` returns the original stored event with
474
+ * `cached: true` instead of creating a duplicate. Idempotency covers the
475
+ * event's Risk Signals too — a replay echoes the same `riskSignalIds`
476
+ * rather than emitting a second set.
477
+ *
478
+ * The response carries the resolved `resource` and the `riskSignalIds`
479
+ * emitted by the event definition's `riskSignalEffects`.
480
+ */
259
481
  ingest(input: IngestEventDto): Promise<IngestEventResponse>;
260
482
  }
483
+ /**
484
+ * Risk Signals — time-decaying evidence attached to one resource.
485
+ *
486
+ * A Risk Signal is evidence, **not** an Alert: adding one creates no alert, no
487
+ * notification, no assignment and no task, and does not change the resource's
488
+ * Risk Rating. Rules read the aggregate effective weight and decide for
489
+ * themselves.
490
+ */
491
+ export declare class RiskSignalsResource {
492
+ private readonly req;
493
+ constructor(req: RequestFn);
494
+ /**
495
+ * `POST /v1/risk-signals` — attach a piece of evidence to one resource.
496
+ *
497
+ * The signal records the strength it had at `occurredAt` and how fast that
498
+ * strength halves, so weight 40 with half-life `P7D` reads 20 after seven
499
+ * days and 10 after fourteen.
500
+ *
501
+ * Supply `externalId` to make retries safe — resubmitting the same
502
+ * `externalId` returns the original signal instead of adding a second one.
503
+ *
504
+ * The server sets the source to `MANUAL` and captures the authenticated
505
+ * actor; a caller cannot claim a signal came from an Event or a Rule.
506
+ */
507
+ create(input: CreateRiskSignalInput): Promise<RiskSignal>;
508
+ /**
509
+ * `GET /v1/risk-signals` — read a resource's Risk Signals with their
510
+ * decayed weights, plus the aggregate effective weight.
511
+ *
512
+ * The aggregate is computed as of `asOf` (defaulting to server time) — it
513
+ * is not a cached score column on the resource, so a historical `asOf`
514
+ * returns what the resource looked like at that moment.
515
+ *
516
+ * `type` and `sourceType` filter which records contribute. They never
517
+ * change how far a contributing signal has decayed: age is always measured
518
+ * to `asOf`.
519
+ */
520
+ list(query: ListRiskSignalsQuery): Promise<RiskSignalListResponse>;
521
+ }
522
+ /**
523
+ * Employees — people acting inside the financial institution's ecosystem.
524
+ *
525
+ * Monitored domain data, distinct from Dossiers organization members: an
526
+ * Employee need not have a Dossiers login, and an Employee id is never an
527
+ * org-member id. Employees are an attachable resource for Events and Risk
528
+ * Signals.
529
+ */
530
+ export declare class EmployeesResource {
531
+ private readonly req;
532
+ constructor(req: RequestFn);
533
+ /**
534
+ * `GET /v1/employees`.
535
+ *
536
+ * The endpoint declares `cursor` / `limit`, but the server currently
537
+ * resolves its own paging defaults (first page, 50 records) — treat paging
538
+ * as server-defaulted rather than caller-controlled.
539
+ */
540
+ list(query?: {
541
+ cursor?: string;
542
+ limit?: number;
543
+ }): Promise<EmployeeListResponse>;
544
+ get(id: string): Promise<Employee>;
545
+ /**
546
+ * `POST /v1/employees`. `externalEmployeeId` must be unique within the
547
+ * organization; a duplicate is rejected with 400.
548
+ */
549
+ create(input: CreateEmployeeInput): Promise<Employee>;
550
+ update(id: string, input: UpdateEmployeeInput): Promise<Employee>;
551
+ }
552
+ /**
553
+ * Branches — the institution's own physical or organizational units, through
554
+ * which Employees act. Like Employee, an attachable resource for Events and
555
+ * Risk Signals.
556
+ */
557
+ export declare class BranchesResource {
558
+ private readonly req;
559
+ constructor(req: RequestFn);
560
+ /**
561
+ * `GET /v1/branches`.
562
+ *
563
+ * The endpoint declares `cursor` / `limit`, but the server currently
564
+ * resolves its own paging defaults (first page, 50 records) — treat paging
565
+ * as server-defaulted rather than caller-controlled.
566
+ */
567
+ list(query?: {
568
+ cursor?: string;
569
+ limit?: number;
570
+ }): Promise<BranchListResponse>;
571
+ get(id: string): Promise<Branch>;
572
+ /**
573
+ * `POST /v1/branches`. `externalBranchId` must be unique within the
574
+ * organization.
575
+ */
576
+ create(input: CreateBranchInput): Promise<Branch>;
577
+ update(id: string, input: UpdateBranchInput): Promise<Branch>;
578
+ }
261
579
  export declare class ExchangeRatesResource {
262
580
  private readonly req;
263
581
  constructor(req: RequestFn);
@@ -273,6 +591,12 @@ export declare class IdentificationDocumentsResource {
273
591
  readonly comments: ResourceCommentsProxy;
274
592
  constructor(req: RequestFn);
275
593
  get(id: string): Promise<IdentificationDocument>;
594
+ /**
595
+ * Correct captured document fields (name, number, DOB, addresses, …).
596
+ * Captured fields are frozen while the document is `APPROVED` (400) —
597
+ * `transition` it back to `PENDING` first. `notes`/`tags`/`attachments`
598
+ * stay editable in any status.
599
+ */
276
600
  update(id: string, input: UpdateIdentificationDocumentInput): Promise<IdentificationDocument>;
277
601
  /** Hard-delete an identification document. Returns `{ deletedId }`. */
278
602
  delete(id: string): Promise<DeleteIdentificationDocumentResponse>;
@@ -284,15 +608,42 @@ export declare class IdentificationDocumentsResource {
284
608
  transition(id: string, input: TransitionIdentificationDocumentStatusInput): Promise<IdentificationDocument>;
285
609
  }
286
610
  /**
287
- * Surfaces comments on alerts received via webhooks. The OS API does not
288
- * currently expose a top-level alerts CRUD; alerts are produced by rule
289
- * evaluation and delivered via webhooks. This resource lets callers
290
- * attach/inspect notes against an alert id without going through the
291
- * platform comments interface.
611
+ * Alerts. Screening and rule-trigger alerts are produced by the platform and
612
+ * delivered via webhooks; **custom alerts** are raised here against an
613
+ * org-defined Custom Alert Type (`config.customAlertTypes`). Every alert type
614
+ * supports markdown notes, linked resources and comments.
615
+ *
616
+ * Requires the `alerts:read` / `alerts:write` API-key permissions.
292
617
  */
293
618
  export declare class AlertsResource {
619
+ private readonly req;
294
620
  readonly comments: ResourceCommentsProxy;
621
+ readonly resources: AlertResourcesProxy;
295
622
  constructor(req: RequestFn);
623
+ /**
624
+ * Raise an alert by hand. `alertType` is optional: with one, `fields` are
625
+ * validated against the type's schema; without one the alert is free-form
626
+ * and `fields` are self-declaring. Re-sending the same `externalRequestId`
627
+ * returns the existing alert (201 either way) — the key is scoped per
628
+ * organization.
629
+ */
630
+ create(input: CreateCustomAlertDto): Promise<AlertResponseDto>;
631
+ /** Flat view of any alert, with its linked resources. */
632
+ get(alertId: string): Promise<AlertResponseDto>;
633
+ /** Replace the alert's markdown notes (any alert type). */
634
+ updateNotes(alertId: string, input: UpdateAlertNotesDto): Promise<AlertResponseDto>;
635
+ /** Immutable attempt facts captured when attempt-history rules contributed to an alert. */
636
+ attemptEvidence(alertId: string): Promise<AlertAttemptEvidence[]>;
637
+ }
638
+ /** Resources linked to an alert — `/v1/alerts/{id}/resources`. */
639
+ export declare class AlertResourcesProxy {
640
+ private readonly req;
641
+ constructor(req: RequestFn);
642
+ list(alertId: string): Promise<AlertResourceDto[]>;
643
+ /** Idempotent on (resourceType, resourceId): re-linking returns the existing link. */
644
+ add(alertId: string, input: AlertResourceRefDto): Promise<AlertResourceDto>;
645
+ /** `alertResourceId` is the link id from `list` / `add`, not the target's id. */
646
+ remove(alertId: string, alertResourceId: string): Promise<void>;
296
647
  }
297
648
  /**
298
649
  * Cross-resource primitives (`/v1/platform/v1/*`). Polymorphic comments and
@@ -333,11 +684,17 @@ export declare class ConfigResource {
333
684
  private readonly req;
334
685
  readonly rules: ConfigRulesResource;
335
686
  readonly constants: ConfigConstantsResource;
687
+ readonly alertWorkflows: ConfigAlertWorkflowsResource;
688
+ /** @deprecated Read-only archive. Use alertWorkflows for assignment. */
689
+ readonly states: ConfigStatesResource;
690
+ readonly assignmentPolicies: ConfigAssignmentPoliciesResource;
336
691
  readonly products: ConfigProductsResource;
337
692
  readonly currencies: ConfigCurrenciesResource;
338
693
  readonly eventDefinitions: ConfigEventDefinitionsResource;
694
+ readonly customAlertTypes: ConfigCustomAlertTypesResource;
339
695
  readonly webhooks: ConfigWebhooksResource;
340
696
  readonly tagCatalogue: ConfigTagCatalogueResource;
697
+ readonly tagGroups: ConfigTagGroupsResource;
341
698
  readonly sync: ConfigSyncResource;
342
699
  constructor(req: RequestFn);
343
700
  /** `DELETE /v1/config/reset` — clear all org config (destructive). */
@@ -366,7 +723,20 @@ export declare class ConfigRulesResource {
366
723
  list(query?: SyncKeyQuery): Promise<RuleResponseDto[]>;
367
724
  create(input: CreateRuleDto): Promise<RuleResponseDto>;
368
725
  getBySyncKey(syncKey: string): Promise<RuleResponseDto>;
726
+ /**
727
+ * Dry-run rule simulation (spec v0 rules §11 backtest + synthetic
728
+ * source). Read-only: nothing is persisted and no actions execute —
729
+ * the response summarises what WOULD have happened. Requires only
730
+ * `config:read`.
731
+ */
732
+ backtest(input: SimulateRulesDto): Promise<SimulationReportDto>;
369
733
  get(id: string): Promise<RuleResponseDto>;
734
+ /** List a rule's definitional version history, newest first (audit trail). */
735
+ versions(id: string): Promise<RuleVersionResponseDto[]>;
736
+ /** Get a single rule version by its version number. */
737
+ getVersion(id: string, version: number): Promise<RuleVersionResponseDto>;
738
+ /** Compute-on-read alert analytics for a rule: disposition breakdown + precision. */
739
+ analytics(id: string): Promise<RuleAnalyticsResponseDto>;
370
740
  update(id: string, input: UpdateRuleDto): Promise<RuleResponseDto>;
371
741
  /**
372
742
  * Tombstones the rule. The rule must already be in ARCHIVED lifecycle;
@@ -378,20 +748,82 @@ export declare class ConfigRulesResource {
378
748
  archive(id: string): Promise<RuleResponseDto>;
379
749
  /** Unarchive (ARCHIVED → LIVE). Validates outbound references first. */
380
750
  unarchive(id: string, targetStatus?: string): Promise<RuleResponseDto>;
751
+ /**
752
+ * Roll the rule back to a previous version. Forward-only: re-applies the
753
+ * target version's definition through the validated update path and mints a
754
+ * new version. Returns 409 if the restored definition no longer resolves
755
+ * (e.g. a tombstoned reference), 403 for system rules.
756
+ */
757
+ rollback(id: string, toVersion: number, reason?: string): Promise<RuleResponseDto>;
758
+ }
759
+ /**
760
+ * One workflow per alert type. Stages control assignment and review requirements;
761
+ * routers choose paths. Requires config:read / config:write.
762
+ */
763
+ export declare class ConfigAlertWorkflowsResource {
764
+ private readonly req;
765
+ constructor(req: RequestFn);
766
+ /** Organization-wide choice; defaults to SIMPLE until Defined workflows is selected. */
767
+ getExperience(): Promise<AlertWorkflowExperienceSettings>;
768
+ /** Requires config:write. Changes only the behavior of newly created alerts. */
769
+ saveExperience(input: SaveAlertWorkflowExperienceInput): Promise<AlertWorkflowExperienceSettings>;
770
+ /** Requires config:read. Returns one workflow per alert type. */
771
+ list(): Promise<AlertWorkflowSettings[]>;
772
+ /** Newest publication first. A null definition cannot be restored. Requires config:read. */
773
+ versions(alertType: WorkflowAlertType): Promise<AlertWorkflowVersion[]>;
774
+ /** Replaces the draft with a saved version. Publishing is a separate operation; existing alerts are unchanged. */
775
+ restore(alertType: WorkflowAlertType, input: RestoreAlertWorkflowInput): Promise<AlertWorkflowSettings>;
776
+ get(alertType: WorkflowAlertType): Promise<AlertWorkflowSettings>;
777
+ /** Requires config:write. Use revision from get(); publish=false only updates the draft. */
778
+ save(alertType: WorkflowAlertType, input: SaveAlertWorkflowInput): Promise<AlertWorkflowSettings>;
779
+ }
780
+ /** Read-only legacy policies. New alert assignment runs through alertWorkflows. */
781
+ export declare class ConfigAssignmentPoliciesResource {
782
+ private readonly req;
783
+ constructor(req: RequestFn);
784
+ /** List policies in evaluation order. */
785
+ list(): Promise<AssignmentPolicyResponseDto[]>;
786
+ /** Create a policy (appended at the end of the evaluation order). */
787
+ /** @deprecated Returns HTTP 410. Use config.alertWorkflows.save() to configure stage assignment. */
788
+ create(input: CreateAssignmentPolicyDto): Promise<AssignmentPolicyResponseDto>;
789
+ getBySyncKey(syncKey: string): Promise<AssignmentPolicyResponseDto | {
790
+ found: false;
791
+ }>;
792
+ get(id: string): Promise<AssignmentPolicyResponseDto>;
793
+ /** @deprecated Returns HTTP 410. Use config.alertWorkflows.save() to configure stage assignment. */
794
+ update(id: string, input: UpdateAssignmentPolicyDto): Promise<AssignmentPolicyResponseDto>;
795
+ /** Reorder: pass EVERY policy id in the desired order; priorities are reassigned 1..n. */
796
+ /** @deprecated Returns HTTP 410. Use config.alertWorkflows.save() to configure stage assignment. */
797
+ reorder(input: ReorderAssignmentPoliciesDto): Promise<AssignmentPolicyResponseDto[]>;
798
+ /** @deprecated Returns HTTP 410. Use config.alertWorkflows.save() to configure stage assignment. */
799
+ delete(id: string): Promise<void>;
381
800
  }
382
801
  export declare class ConfigConstantsResource {
383
802
  private readonly req;
384
803
  constructor(req: RequestFn);
385
- list(query?: SyncKeyQuery): Promise<ConstantResponseDto[]>;
804
+ list(query?: ListConstantsQuery): Promise<ConstantResponseDto[]>;
386
805
  create(input: CreateConstantDto): Promise<ConstantResponseDto>;
387
806
  getBySyncKey(syncKey: string): Promise<ConstantResponseDto>;
388
807
  get(id: string): Promise<ConstantResponseDto>;
389
808
  update(id: string, input: UpdateConstantDto): Promise<ConstantResponseDto>;
390
809
  delete(id: string, query?: DeleteConstantQuery): Promise<void>;
391
810
  }
811
+ export declare class ConfigStatesResource {
812
+ private readonly req;
813
+ constructor(req: RequestFn);
814
+ list(): Promise<StateDefinitionDto[]>;
815
+ create(input: CreateStateDefinitionInput): Promise<StateDefinitionDto>;
816
+ }
817
+ export declare class StatesResource {
818
+ private readonly req;
819
+ constructor(req: RequestFn);
820
+ change(input: ChangeResourceStateInput): Promise<ResourceStateDto>;
821
+ get(resourceType: StateResourceType, resourceId: string, name: string): Promise<ResourceStateDto | null>;
822
+ history(resourceType: StateResourceType, resourceId: string, name: string, limit?: number): Promise<ResourceStateHistoryDto[]>;
823
+ }
392
824
  /**
393
- * Tag catalogue — per-org, per-field tag vocabulary plus enforcement. Backs the
394
- * eight `TagValue[]` resource tag fields. Under `strict` enforcement, writes
825
+ * Tag catalogue — per-org, per-field tag vocabulary plus enforcement. Backs
826
+ * every `TagValue[]` resource tag field. Under `strict` enforcement, writes
395
827
  * carrying off-catalogue values are rejected (422).
396
828
  */
397
829
  export declare class ConfigTagCatalogueResource {
@@ -402,21 +834,63 @@ export declare class ConfigTagCatalogueResource {
402
834
  fieldKey?: TagFieldKey;
403
835
  includeArchived?: boolean;
404
836
  }): Promise<TagCatalogueEntry[]>;
405
- /** Per field-key enforcement settings (every field-key, defaulting to `open`). */
406
- enforcement(): Promise<TagFieldEnforcement[]>;
837
+ /**
838
+ * The fixed colour palette. Served by the API so the token list isn't
839
+ * duplicated (and left to drift) in every client.
840
+ */
841
+ palette(): Promise<{
842
+ tokens: string[];
843
+ }>;
407
844
  create(input: TagCatalogueEntryInput): Promise<TagCatalogueEntry>;
408
845
  update(id: string, input: UpdateTagCatalogueEntryInput): Promise<TagCatalogueEntry>;
409
846
  /** Archive an entry (hidden from pickers but kept for unarchive/history). */
410
847
  archive(id: string): Promise<TagCatalogueEntry>;
411
848
  /** Hard-delete an entry. Existing assignments keep their snapshot label/value. */
412
849
  delete(id: string): Promise<void>;
413
- /** Set enforcement (`open` | `strict`) for one field-key. */
414
- setEnforcement(input: SetTagEnforcementInput): Promise<TagFieldEnforcement>;
415
850
  /** Re-sync denormalised assignment labels from the catalogue. */
416
851
  backfill(fieldKey: TagFieldKey): Promise<{
417
852
  rewritten: number;
418
853
  }>;
419
854
  }
855
+ /**
856
+ * Tag groups — the facet layer over the catalogue. A group owns a namespace, so
857
+ * its member tags are stored as `<group>:<tag>` and a group is recoverable from
858
+ * a tag value by splitting on the first colon.
859
+ */
860
+ export declare class ConfigTagGroupsResource {
861
+ private readonly req;
862
+ constructor(req: RequestFn);
863
+ list(query?: {
864
+ fieldKey?: TagFieldKey;
865
+ includeArchived?: boolean;
866
+ }): Promise<TagGroup[]>;
867
+ create(input: TagGroupInput): Promise<TagGroup>;
868
+ update(id: string, input: UpdateTagGroupInput): Promise<TagGroup>;
869
+ /** Archive a group. Its tags keep their namespaced values. */
870
+ archive(id: string): Promise<TagGroup>;
871
+ /** Hard-delete. Rejected while the group still owns tags — archive instead. */
872
+ delete(id: string): Promise<void>;
873
+ /** Records holding more than one tag from this group — the SINGLE pre-flight. */
874
+ cardinalityConflicts(id: string): Promise<{
875
+ total: number;
876
+ sample: {
877
+ resourceId: string;
878
+ count: number;
879
+ }[];
880
+ }>;
881
+ /**
882
+ * Move tags into (or out of, with `groupId: null`) a group.
883
+ *
884
+ * This changes each tag's stored VALUE, so it also rewrites assignments,
885
+ * rule condition operands, and assignment-policy routing tables. Run it
886
+ * with `dryRun: true` first — the report is identical, nothing is written.
887
+ */
888
+ regroup(input: {
889
+ entryIds: string[];
890
+ groupId?: string | null;
891
+ dryRun?: boolean;
892
+ }): Promise<RegroupReport>;
893
+ }
420
894
  /**
421
895
  * Lifecycle-result shape returned by archive/unarchive endpoints across
422
896
  * adopters. Subset of the resource row sufficient for UI feedback after a
@@ -457,6 +931,36 @@ export declare class ConfigCurrenciesResource {
457
931
  get(id: string): Promise<CurrencyResponseDto>;
458
932
  update(id: string, input: UpdateCurrencyInput): Promise<CurrencyResponseDto>;
459
933
  bulkUpdateStatus(input: BulkCurrencyStatusInput): Promise<BulkCurrencyStatusResponseDto>;
934
+ /** Archive a currency (LIVE → ARCHIVED). Also disables it. */
935
+ archive(id: string): Promise<CurrencyResponseDto>;
936
+ /** Tombstone a currency (terminal). Archive-first required — 409 if LIVE. */
937
+ delete(id: string): Promise<CurrencyResponseDto>;
938
+ }
939
+ /**
940
+ * Org-defined alert types for custom alerts — `/v1/config/custom-alert-types`.
941
+ * Requires `config:read` / `config:write`. Follows the canonical lifecycle:
942
+ * archive (blocked while alerts of the type are OPEN) → tombstone.
943
+ */
944
+ export declare class ConfigCustomAlertTypesResource {
945
+ private readonly req;
946
+ constructor(req: RequestFn);
947
+ list(query?: {
948
+ lifecycle?: 'LIVE' | 'ARCHIVED' | 'TOMBSTONED' | 'ALL';
949
+ }): Promise<CustomAlertTypeResponseDto[]>;
950
+ create(input: CreateCustomAlertTypeDto): Promise<CustomAlertTypeResponseDto>;
951
+ /** Returns `{ found: false }` when no type has that name. */
952
+ getByName(name: string): Promise<CustomAlertTypeResponseDto | {
953
+ found: false;
954
+ }>;
955
+ get(id: string): Promise<CustomAlertTypeResponseDto>;
956
+ /** Schema edits apply to alerts raised afterwards; existing alerts are not re-validated. */
957
+ update(id: string, input: UpdateCustomAlertTypeDto): Promise<CustomAlertTypeResponseDto>;
958
+ /** Tombstones the type. Archive-first enforced. */
959
+ delete(id: string): Promise<void>;
960
+ /** LIVE → ARCHIVED. 409 while any alert of this type is OPEN. */
961
+ archive(id: string): Promise<CustomAlertTypeResponseDto>;
962
+ /** ARCHIVED → LIVE. */
963
+ unarchive(id: string): Promise<CustomAlertTypeResponseDto>;
460
964
  }
461
965
  export declare class ConfigEventDefinitionsResource {
462
966
  private readonly req;
@@ -513,5 +1017,79 @@ export declare class SettingsResource {
513
1017
  /** Download a specific snapshot as a zip archive (tenant.sync.json + README.md). */
514
1018
  downloadSyncSnapshot(id: string): Promise<unknown>;
515
1019
  }
1020
+ /**
1021
+ * Custom screening lists — tenant-managed lists (internal blocklists, exited
1022
+ * customers, local regulator lists) checked by every screening run alongside
1023
+ * external providers. Requires `config:read` / `config:write` API-key scope.
1024
+ */
1025
+ export declare class CustomListsResource {
1026
+ private readonly req;
1027
+ constructor(req: RequestFn);
1028
+ /** `GET /v1/screening/custom-lists` — lists, LIVE only by default. */
1029
+ list(params?: {
1030
+ lifecycle?: 'LIVE' | 'ARCHIVED' | 'ALL';
1031
+ enabled?: boolean;
1032
+ search?: string;
1033
+ page?: number;
1034
+ pageSize?: number;
1035
+ }): Promise<CustomScreeningListListResponse>;
1036
+ /** `POST /v1/screening/custom-lists` — create a list. */
1037
+ create(input: CreateCustomScreeningListInput): Promise<CustomScreeningListDto>;
1038
+ /** `GET /v1/screening/custom-lists/{listId}`. */
1039
+ get(listId: string): Promise<CustomScreeningListDto>;
1040
+ /** `PATCH /v1/screening/custom-lists/{listId}` — name / description / enabled / tags. */
1041
+ update(listId: string, input: UpdateCustomScreeningListInput): Promise<CustomScreeningListDto>;
1042
+ /**
1043
+ * `POST /v1/screening/custom-lists/{listId}/archive` — archived lists are
1044
+ * read-only and excluded from screening.
1045
+ */
1046
+ archive(listId: string): Promise<CustomScreeningListDto>;
1047
+ /** `POST /v1/screening/custom-lists/{listId}/unarchive`. */
1048
+ unarchive(listId: string): Promise<CustomScreeningListDto>;
1049
+ /** `GET /v1/screening/custom-lists/{listId}/entries`. */
1050
+ listEntries(listId: string, params?: {
1051
+ search?: string;
1052
+ page?: number;
1053
+ pageSize?: number;
1054
+ }): Promise<CustomListEntryListResponse>;
1055
+ /** `POST /v1/screening/custom-lists/{listId}/entries` — add a single entry. */
1056
+ createEntry(listId: string, input: CustomListEntryInput): Promise<CustomListEntryDto>;
1057
+ /**
1058
+ * `POST /v1/screening/custom-lists/{listId}/entries/bulk` — import up to
1059
+ * 500 rows per request. Invalid rows are rejected per-row (with reasons)
1060
+ * while valid rows proceed; rows carrying `externalRef` upsert instead of
1061
+ * duplicating, so re-importing a refreshed CSV is safe.
1062
+ */
1063
+ bulkCreateEntries(listId: string, rows: CustomListEntryInput[]): Promise<BulkCustomListImportResultDto>;
1064
+ /** `PATCH /v1/screening/custom-lists/{listId}/entries/{entryId}`. */
1065
+ updateEntry(listId: string, entryId: string, input: UpdateCustomListEntryInput): Promise<CustomListEntryDto>;
1066
+ /** `DELETE /v1/screening/custom-lists/{listId}/entries/{entryId}`. */
1067
+ deleteEntry(listId: string, entryId: string): Promise<{
1068
+ deleted: boolean;
1069
+ }>;
1070
+ }
1071
+ /**
1072
+ * On-demand PDF reports (`/v1/reports/...`). Each method resolves to the raw
1073
+ * PDF bytes; write them to disk or hand them to a download response. Requires
1074
+ * the `report:read` grant. Generating a report records a `report.generated`
1075
+ * activity on the subject record.
1076
+ */
1077
+ export declare class ReportsResource {
1078
+ private readonly getBinary;
1079
+ constructor(getBinary: BinaryRequestFn);
1080
+ /** Alert case file: facts, subject customer, matches / rule triggers, comments, activity. */
1081
+ alert(alertId: string): Promise<Uint8Array>;
1082
+ /** Customer profile: identity, documents, accounts, risk, screening, totals, alerts. */
1083
+ customerProfile(customerId: string): Promise<Uint8Array>;
1084
+ /** Counterparty profile: classification, identifiers, payment methods, totals. */
1085
+ counterpartyProfile(counterpartyId: string): Promise<Uint8Array>;
1086
+ /**
1087
+ * Generic profile for any other registered resource type (`ACCOUNT`,
1088
+ * `DEVICE`, `INSTITUTION`, `PRODUCT`, `TASK`, …). `ALERT`, `CUSTOMER` and
1089
+ * `COUNTERPARTY` are rejected with 400 — use the dedicated methods.
1090
+ */
1091
+ resourceProfile(resourceType: ReportResourceType, resourceId: string): Promise<Uint8Array>;
1092
+ }
1093
+ export type ReportResourceType = 'ACCOUNT' | 'TRANSACTION' | 'TASK' | 'DEVICE' | 'PRODUCT' | 'IDENTIFICATION_DOCUMENT' | 'INSTITUTION' | 'CONSTANT' | 'WEBHOOK' | (string & {});
516
1094
  export {};
517
1095
  //# sourceMappingURL=service.d.ts.map