gdc-sdk-node-ts 0.9.0 → 0.12.0

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.
@@ -1,9 +1,11 @@
1
1
  import { type NodeRuntimeClient, type PollOptions, type SubmitAndPollResult, type SubmitPayload } from './client-port.js';
2
2
  import type { RouteContext } from '../individual-onboarding.js';
3
+ import type { HostRouteContext, HostedTenantLifecycleInput } from '../host-onboarding.js';
3
4
  import type { EmployeeDeviceActivationResult, EmployeeDeviceActivationRequestInput } from '../device-activation.js';
4
5
  import type { SmartTokenExchangeResult, SmartTokenRequestInput } from '../smart-token.js';
6
+ import type { OrganizationLicenseOrderConfirmInput } from '../organization-license-order.js';
5
7
  import type { NodeCapability } from '../session.js';
6
- import type { OrganizationEmployeeCreationInput, OrganizationEmployeeLifecycleInput } from '../resource-operations.js';
8
+ import type { LicenseListRuntimeSearchInput, LicenseOfferRuntimeSearchInput, LicenseOrderRuntimeSearchInput, OrganizationEmployeeCreationInput, OrganizationEmployeeLifecycleInput, OrganizationEmployeeSearchInput } from '../resource-operations.js';
7
9
  /**
8
10
  * Organization-controller oriented facade over a `NodeRuntimeClient`.
9
11
  *
@@ -29,6 +31,51 @@ export declare class OrganizationControllerSdk {
29
31
  * Preferred public alias for employee disable.
30
32
  */
31
33
  disableEmployee(ctx: RouteContext, input: OrganizationEmployeeLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
34
+ /**
35
+ * Searches employees/professionals under the current organization tenant.
36
+ */
37
+ searchOrganizationEmployees(ctx: RouteContext, input: OrganizationEmployeeSearchInput): Promise<SubmitAndPollResult>;
38
+ /**
39
+ * Searches organization-owned license seats using semantic license filters.
40
+ */
41
+ searchLicenses(ctx: RouteContext, input: LicenseListRuntimeSearchInput): Promise<SubmitAndPollResult>;
42
+ /**
43
+ * Lists organization-owned license seats with optional filters.
44
+ */
45
+ listLicenses(ctx: RouteContext, input?: LicenseListRuntimeSearchInput): Promise<SubmitAndPollResult>;
46
+ /**
47
+ * Searches commercial license offers known for the current organization.
48
+ */
49
+ searchLicenseOffers(ctx: RouteContext, input: LicenseOfferRuntimeSearchInput): Promise<SubmitAndPollResult>;
50
+ /**
51
+ * Lists commercial license offers known for the current organization.
52
+ */
53
+ listLicenseOffers(ctx: RouteContext, input?: LicenseOfferRuntimeSearchInput): Promise<SubmitAndPollResult>;
54
+ /**
55
+ * Searches commercial license orders/payment records known for the current
56
+ * organization.
57
+ */
58
+ searchLicenseOrders(ctx: RouteContext, input: LicenseOrderRuntimeSearchInput): Promise<SubmitAndPollResult>;
59
+ /**
60
+ * Lists commercial license orders/payment records known for the current
61
+ * organization.
62
+ */
63
+ listLicenseOrders(ctx: RouteContext, input?: LicenseOrderRuntimeSearchInput): Promise<SubmitAndPollResult>;
64
+ /**
65
+ * Confirms an already paid organization-side license order so GW CORE can
66
+ * activate additional tenant seats once the public route exists.
67
+ *
68
+ * The commercial/payment step happens outside GW CORE. This method models
69
+ * the follow-up confirmation that should materialize new seats from the
70
+ * accepted order.
71
+ *
72
+ * Current runtime note:
73
+ * - search/list of organization license offers and orders already exists
74
+ * - the public/write post-payment seat-activation route is not converged yet
75
+ * - current runtime clients therefore throw an explicit unsupported-flow
76
+ * error instead of fabricating an unstable payload contract
77
+ */
78
+ confirmOrganizationLicenseOrder(ctx: RouteContext, input: OrganizationLicenseOrderConfirmInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
32
79
  /**
33
80
  * Purges an already inactive employee and frees the associated license seat.
34
81
  */
@@ -37,6 +84,16 @@ export declare class OrganizationControllerSdk {
37
84
  * Preferred public alias for employee purge.
38
85
  */
39
86
  purgeEmployee(ctx: RouteContext, input: OrganizationEmployeeLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
87
+ /**
88
+ * Disables the hosted tenant itself through the host registry once no active
89
+ * employees or individual/member descendants remain.
90
+ */
91
+ disableTenant(hostCtx: HostRouteContext, input: HostedTenantLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
92
+ /**
93
+ * Purges the hosted tenant through the host registry after tenant disable and
94
+ * descendant purges have both completed.
95
+ */
96
+ purgeTenant(hostCtx: HostRouteContext, input: HostedTenantLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
40
97
  /**
41
98
  * Activates the employee device from a previously issued activation request.
42
99
  */
@@ -37,6 +37,67 @@ export class OrganizationControllerSdk {
37
37
  assertFacadeCapability(this.capabilities, ActorCapabilities.OrganizationDisableEmployee, ActorKinds.OrganizationController, 'disableEmployee');
38
38
  return requireClientMethod(this.client, 'disableEmployee')(ctx, input, pollOptions);
39
39
  }
40
+ /**
41
+ * Searches employees/professionals under the current organization tenant.
42
+ */
43
+ searchOrganizationEmployees(ctx, input) {
44
+ return requireClientMethod(this.client, 'searchOrganizationEmployees')(ctx, input);
45
+ }
46
+ /**
47
+ * Searches organization-owned license seats using semantic license filters.
48
+ */
49
+ searchLicenses(ctx, input) {
50
+ return requireClientMethod(this.client, 'searchOrganizationLicenses')(ctx, input);
51
+ }
52
+ /**
53
+ * Lists organization-owned license seats with optional filters.
54
+ */
55
+ listLicenses(ctx, input = {}) {
56
+ return requireClientMethod(this.client, 'listOrganizationLicenses')(ctx, input);
57
+ }
58
+ /**
59
+ * Searches commercial license offers known for the current organization.
60
+ */
61
+ searchLicenseOffers(ctx, input) {
62
+ return requireClientMethod(this.client, 'searchOrganizationLicenseOffers')(ctx, input);
63
+ }
64
+ /**
65
+ * Lists commercial license offers known for the current organization.
66
+ */
67
+ listLicenseOffers(ctx, input = {}) {
68
+ return requireClientMethod(this.client, 'listOrganizationLicenseOffers')(ctx, input);
69
+ }
70
+ /**
71
+ * Searches commercial license orders/payment records known for the current
72
+ * organization.
73
+ */
74
+ searchLicenseOrders(ctx, input) {
75
+ return requireClientMethod(this.client, 'searchOrganizationLicenseOrders')(ctx, input);
76
+ }
77
+ /**
78
+ * Lists commercial license orders/payment records known for the current
79
+ * organization.
80
+ */
81
+ listLicenseOrders(ctx, input = {}) {
82
+ return requireClientMethod(this.client, 'listOrganizationLicenseOrders')(ctx, input);
83
+ }
84
+ /**
85
+ * Confirms an already paid organization-side license order so GW CORE can
86
+ * activate additional tenant seats once the public route exists.
87
+ *
88
+ * The commercial/payment step happens outside GW CORE. This method models
89
+ * the follow-up confirmation that should materialize new seats from the
90
+ * accepted order.
91
+ *
92
+ * Current runtime note:
93
+ * - search/list of organization license offers and orders already exists
94
+ * - the public/write post-payment seat-activation route is not converged yet
95
+ * - current runtime clients therefore throw an explicit unsupported-flow
96
+ * error instead of fabricating an unstable payload contract
97
+ */
98
+ confirmOrganizationLicenseOrder(ctx, input, pollOptions) {
99
+ return requireClientMethod(this.client, 'confirmOrganizationLicenseOrder')(ctx, input, pollOptions);
100
+ }
40
101
  /**
41
102
  * Purges an already inactive employee and frees the associated license seat.
42
103
  */
@@ -51,6 +112,22 @@ export class OrganizationControllerSdk {
51
112
  assertFacadeCapability(this.capabilities, ActorCapabilities.OrganizationPurgeEmployee, ActorKinds.OrganizationController, 'purgeEmployee');
52
113
  return requireClientMethod(this.client, 'purgeEmployee')(ctx, input, pollOptions);
53
114
  }
115
+ /**
116
+ * Disables the hosted tenant itself through the host registry once no active
117
+ * employees or individual/member descendants remain.
118
+ */
119
+ disableTenant(hostCtx, input, pollOptions) {
120
+ assertFacadeCapability(this.capabilities, ActorCapabilities.OrganizationDisableTenant, ActorKinds.OrganizationController, 'disableTenant');
121
+ return requireClientMethod(this.client, 'disableTenant')(hostCtx, input, pollOptions);
122
+ }
123
+ /**
124
+ * Purges the hosted tenant through the host registry after tenant disable and
125
+ * descendant purges have both completed.
126
+ */
127
+ purgeTenant(hostCtx, input, pollOptions) {
128
+ assertFacadeCapability(this.capabilities, ActorCapabilities.OrganizationPurgeTenant, ActorKinds.OrganizationController, 'purgeTenant');
129
+ return requireClientMethod(this.client, 'purgeTenant')(hostCtx, input, pollOptions);
130
+ }
54
131
  /**
55
132
  * Activates the employee device from a previously issued activation request.
56
133
  */
@@ -1,7 +1,7 @@
1
1
  import { type NodeRuntimeClient, type PollOptions, type SubmitAndPollResult, type SubmitPayload } from './client-port.js';
2
2
  import type { IndividualOrganizationBootstrapInput, IndividualOrganizationStartResult } from '../individual-start.js';
3
3
  import type { RouteContext } from '../individual-onboarding.js';
4
- import type { CommunicationIngestionInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IpsOrFhirImportInput } from '../resource-operations.js';
4
+ import type { ClinicalBundleSearchInput, CommunicationIngestionInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IpsOrFhirImportInput, LicenseListRuntimeSearchInput, LicenseOfferRuntimeSearchInput, LicenseOrderRuntimeSearchInput } from '../resource-operations.js';
5
5
  import type { SmartTokenExchangeResult, SmartTokenRequestInput } from '../smart-token.js';
6
6
  export declare class PersonalSdk {
7
7
  private readonly client;
@@ -16,6 +16,22 @@ export declare class PersonalSdk {
16
16
  ingestCommunicationAndUpdateIndex(ctx: RouteContext, input: CommunicationIngestionInput): Promise<SubmitAndPollResult>;
17
17
  /** Triggers digital twin generation from subject data. */
18
18
  generateDigitalTwinFromSubjectData(ctx: RouteContext, input: DigitalTwinGenerationInput): Promise<SubmitAndPollResult>;
19
+ /** Searches indexed clinical bundles for the current subject/controller context. */
20
+ searchClinicalBundle(ctx: RouteContext, input: ClinicalBundleSearchInput): Promise<SubmitAndPollResult>;
21
+ /** Returns the latest IPS-oriented bundle for one subject. */
22
+ getLatestIps(ctx: RouteContext, input: Omit<ClinicalBundleSearchInput, 'includedTypes'>): Promise<SubmitAndPollResult>;
23
+ /** Searches subject-side license seats using semantic filters. */
24
+ searchLicenses(ctx: RouteContext, input: LicenseListRuntimeSearchInput): Promise<SubmitAndPollResult>;
25
+ /** Lists subject-side license seats with optional filters. */
26
+ listLicenses(ctx: RouteContext, input?: LicenseListRuntimeSearchInput): Promise<SubmitAndPollResult>;
27
+ /** Searches subject-side commercial license offers. */
28
+ searchLicenseOffers(ctx: RouteContext, input: LicenseOfferRuntimeSearchInput): Promise<SubmitAndPollResult>;
29
+ /** Lists subject-side commercial license offers. */
30
+ listLicenseOffers(ctx: RouteContext, input?: LicenseOfferRuntimeSearchInput): Promise<SubmitAndPollResult>;
31
+ /** Searches subject-side commercial license orders/payment projections. */
32
+ searchLicenseOrders(ctx: RouteContext, input: LicenseOrderRuntimeSearchInput): Promise<SubmitAndPollResult>;
33
+ /** Lists subject-side commercial license orders/payment projections. */
34
+ listLicenseOrders(ctx: RouteContext, input?: LicenseOrderRuntimeSearchInput): Promise<SubmitAndPollResult>;
19
35
  /** Requests SMART/OpenID token with simplified exchange flow. */
20
36
  requestSmartToken(input: SmartTokenRequestInput): Promise<SmartTokenExchangeResult>;
21
37
  submitAndPoll(submitPath: string, pollPath: string, payload: SubmitPayload, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
@@ -24,6 +24,38 @@ export class PersonalSdk {
24
24
  generateDigitalTwinFromSubjectData(ctx, input) {
25
25
  return requireClientMethod(this.client, 'generateDigitalTwinFromSubjectData')(ctx, input);
26
26
  }
27
+ /** Searches indexed clinical bundles for the current subject/controller context. */
28
+ searchClinicalBundle(ctx, input) {
29
+ return requireClientMethod(this.client, 'searchClinicalBundle')(ctx, input);
30
+ }
31
+ /** Returns the latest IPS-oriented bundle for one subject. */
32
+ getLatestIps(ctx, input) {
33
+ return requireClientMethod(this.client, 'getLatestIps')(ctx, input);
34
+ }
35
+ /** Searches subject-side license seats using semantic filters. */
36
+ searchLicenses(ctx, input) {
37
+ return requireClientMethod(this.client, 'searchIndividualLicenses')(ctx, input);
38
+ }
39
+ /** Lists subject-side license seats with optional filters. */
40
+ listLicenses(ctx, input = {}) {
41
+ return requireClientMethod(this.client, 'listIndividualLicenses')(ctx, input);
42
+ }
43
+ /** Searches subject-side commercial license offers. */
44
+ searchLicenseOffers(ctx, input) {
45
+ return requireClientMethod(this.client, 'searchIndividualLicenseOffers')(ctx, input);
46
+ }
47
+ /** Lists subject-side commercial license offers. */
48
+ listLicenseOffers(ctx, input = {}) {
49
+ return requireClientMethod(this.client, 'listIndividualLicenseOffers')(ctx, input);
50
+ }
51
+ /** Searches subject-side commercial license orders/payment projections. */
52
+ searchLicenseOrders(ctx, input) {
53
+ return requireClientMethod(this.client, 'searchIndividualLicenseOrders')(ctx, input);
54
+ }
55
+ /** Lists subject-side commercial license orders/payment projections. */
56
+ listLicenseOrders(ctx, input = {}) {
57
+ return requireClientMethod(this.client, 'listIndividualLicenseOrders')(ctx, input);
58
+ }
27
59
  /** Requests SMART/OpenID token with simplified exchange flow. */
28
60
  requestSmartToken(input) {
29
61
  return requireClientMethod(this.client, 'requestSmartToken')(input);
@@ -0,0 +1,6 @@
1
+ import { type LicenseOfferPreview, type LicenseOrderSummary } from 'gdc-common-utils-ts';
2
+ export type OfferPreview = LicenseOfferPreview;
3
+ export type OrderSummary = LicenseOrderSummary;
4
+ export declare function extractOfferIdFromResponseBody(body: unknown): string | undefined;
5
+ export declare function extractOfferPreviewFromResponseBody(body: unknown): OfferPreview;
6
+ export declare function extractOrderSummaryFromResponseBody(body: unknown): OrderSummary;
@@ -0,0 +1,11 @@
1
+ // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
+ import { ClaimsOfferSchemaorg, extractPrimaryClaims, readLicenseOfferPreviewFromResponseBody, readLicenseOrderSummaryFromResponseBody, } from 'gdc-common-utils-ts';
3
+ export function extractOfferIdFromResponseBody(body) {
4
+ return String(extractPrimaryClaims(body)[ClaimsOfferSchemaorg.identifier] || '').trim() || undefined;
5
+ }
6
+ export function extractOfferPreviewFromResponseBody(body) {
7
+ return readLicenseOfferPreviewFromResponseBody(body);
8
+ }
9
+ export function extractOrderSummaryFromResponseBody(body) {
10
+ return readLicenseOrderSummaryFromResponseBody(body);
11
+ }
@@ -0,0 +1,40 @@
1
+ import type { PollOptions, SubmitAndPollResult } from './orchestration/client-port.js';
2
+ import type { HostRouteContext } from './host-onboarding.js';
3
+ import type { RouteContext } from './individual-onboarding.js';
4
+ /**
5
+ * High-level runtime input for organization-side extra-license activation after
6
+ * the portal has already resolved the commercial/payment step out of band.
7
+ *
8
+ * Target business sequence:
9
+ * - portal lists/searches `Offer`
10
+ * - portal completes the fictitious or real payment outside GW CORE
11
+ * - portal confirms the accepted offer to GW CORE
12
+ * - GW CORE materializes the new `device-licenses` seats for the tenant
13
+ *
14
+ * Transport note:
15
+ * - current GW CORE exposes this confirmation step through the host
16
+ * `registry/org.schema/Order/_batch` route
17
+ * - the organization controller still reasons in tenant context, so the
18
+ * runtime adapts that higher-level intent onto the current host route
19
+ */
20
+ export type OrganizationLicenseOrderConfirmInput = Readonly<{
21
+ offerId: string;
22
+ hostNetwork?: string;
23
+ dataType?: string;
24
+ additionalClaims?: Record<string, unknown>;
25
+ timeoutSeconds?: number;
26
+ intervalSeconds?: number;
27
+ }>;
28
+ type ConfirmOrganizationLicenseOrderDeps = Readonly<{
29
+ routeCtx: RouteContext;
30
+ input: OrganizationLicenseOrderConfirmInput;
31
+ defaultTimeoutMs?: number;
32
+ defaultIntervalMs?: number;
33
+ hostRegistryOrderBatchPath: (ctx: HostRouteContext) => string;
34
+ hostRegistryOrderPollPath: (ctx: HostRouteContext) => string;
35
+ submitAndPoll: (submitPath: string, pollPath: string, payload: {
36
+ thid?: string;
37
+ } & Record<string, unknown>, options?: PollOptions) => Promise<SubmitAndPollResult>;
38
+ }>;
39
+ export declare function confirmOrganizationLicenseOrderWithDeps(deps: ConfirmOrganizationLicenseOrderDeps): Promise<SubmitAndPollResult>;
40
+ export {};
@@ -0,0 +1,42 @@
1
+ // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
+ import { resolvePollOptionsFromSeconds } from './poll-options.js';
3
+ export async function confirmOrganizationLicenseOrderWithDeps(deps) {
4
+ const offerId = String(deps.input.offerId || '').trim();
5
+ if (!offerId) {
6
+ throw new Error('confirmOrganizationLicenseOrder requires offerId.');
7
+ }
8
+ const claims = {
9
+ '@context': 'org.schema',
10
+ 'Order.acceptedOffer.identifier': offerId,
11
+ ...(deps.input.additionalClaims || {}),
12
+ };
13
+ const hostCtx = {
14
+ jurisdiction: String(deps.routeCtx.jurisdiction || '').trim(),
15
+ hostNetwork: String(deps.input.hostNetwork || 'test').trim() || 'test',
16
+ };
17
+ const payload = {
18
+ jti: `jti-${createRuntimeUuid()}`,
19
+ iss: deps.routeCtx.tenantId,
20
+ aud: deps.routeCtx.tenantId,
21
+ type: 'application/didcomm-plain+json',
22
+ thid: `organization-license-order-${createRuntimeUuid()}`,
23
+ body: {
24
+ data: [{
25
+ type: deps.input.dataType || 'Organization-order-request-v1.0',
26
+ meta: { claims },
27
+ resource: { meta: { claims } },
28
+ }],
29
+ },
30
+ };
31
+ return deps.submitAndPoll(deps.hostRegistryOrderBatchPath(hostCtx), deps.hostRegistryOrderPollPath(hostCtx), payload, resolvePollOptionsFromSeconds(deps.input.timeoutSeconds, deps.input.intervalSeconds, {
32
+ timeoutMs: deps.defaultTimeoutMs,
33
+ intervalMs: deps.defaultIntervalMs,
34
+ }));
35
+ }
36
+ function createRuntimeUuid() {
37
+ const fromCrypto = globalThis.crypto?.randomUUID?.();
38
+ if (fromCrypto) {
39
+ return fromCrypto;
40
+ }
41
+ return `fallback-${Date.now()}-${Math.random().toString(16).slice(2)}`;
42
+ }
@@ -1,3 +1,4 @@
1
+ import { type LicenseOfferSearchDraft, type LicenseOrderSearchDraft, type LicenseListSearchDraft } from 'gdc-common-utils-ts';
1
2
  import type { BundleSearchQuery, CommunicationInput, DateRange, EmployeeSearchValue } from 'gdc-sdk-core-ts';
2
3
  import type { SubmitAndPollResult } from './orchestration/client-port.js';
3
4
  import type { RouteContext } from './individual-onboarding.js';
@@ -59,6 +60,43 @@ export type OrganizationEmployeeSearchInput = {
59
60
  intervalMs?: number;
60
61
  };
61
62
  };
63
+ /**
64
+ * Runtime search/list input for license seats exposed through actor facades.
65
+ *
66
+ * The semantic filter set comes from the shared license controller facade.
67
+ */
68
+ export type LicenseListRuntimeSearchInput = {
69
+ licenseQuery?: Partial<LicenseListSearchDraft>;
70
+ requestThid?: string;
71
+ pollOptions?: {
72
+ timeoutMs?: number;
73
+ intervalMs?: number;
74
+ };
75
+ };
76
+ /**
77
+ * Runtime search/list input for commercial offer read-models exposed through
78
+ * actor facades.
79
+ */
80
+ export type LicenseOfferRuntimeSearchInput = {
81
+ offerQuery?: Partial<LicenseOfferSearchDraft>;
82
+ requestThid?: string;
83
+ pollOptions?: {
84
+ timeoutMs?: number;
85
+ intervalMs?: number;
86
+ };
87
+ };
88
+ /**
89
+ * Runtime search/list input for commercial order/payment read-models exposed
90
+ * through actor facades.
91
+ */
92
+ export type LicenseOrderRuntimeSearchInput = {
93
+ orderQuery?: Partial<LicenseOrderSearchDraft>;
94
+ requestThid?: string;
95
+ pollOptions?: {
96
+ timeoutMs?: number;
97
+ intervalMs?: number;
98
+ };
99
+ };
62
100
  /**
63
101
  * Current GW CORE individual/family lifecycle locator payload.
64
102
  *
@@ -255,6 +293,54 @@ export declare function searchOrganizationEmployeesWithDeps(routeCtx: RouteConte
255
293
  intervalMs?: number;
256
294
  }) => Promise<SubmitAndPollResult>;
257
295
  }): Promise<SubmitAndPollResult>;
296
+ /**
297
+ * Searches license seats for one organization/tenant through `License/_search`.
298
+ */
299
+ export declare function searchOrganizationLicensesWithDeps(routeCtx: RouteContext, input: LicenseListRuntimeSearchInput, deps: {
300
+ organizationLicenseSearchPath: (ctx: RouteContext) => string;
301
+ organizationLicenseSearchPollPath: (ctx: RouteContext) => string;
302
+ submitAndPoll: (submitPath: string, pollPath: string, payload: {
303
+ thid?: string;
304
+ } & Record<string, unknown>, pollOptions?: {
305
+ timeoutMs?: number;
306
+ intervalMs?: number;
307
+ }) => Promise<SubmitAndPollResult>;
308
+ }): Promise<SubmitAndPollResult>;
309
+ /**
310
+ * Lists license seats using the same canonical `License/_search` route with no
311
+ * mandatory filters.
312
+ */
313
+ export declare function listOrganizationLicensesWithDeps(routeCtx: RouteContext, input: LicenseListRuntimeSearchInput | undefined, deps: Parameters<typeof searchOrganizationLicensesWithDeps>[2]): Promise<SubmitAndPollResult>;
314
+ /**
315
+ * Searches commercial license offers for one organization/tenant through
316
+ * `Offer/_search`.
317
+ */
318
+ export declare function searchOrganizationLicenseOffersWithDeps(routeCtx: RouteContext, input: LicenseOfferRuntimeSearchInput, deps: {
319
+ organizationLicenseOfferSearchPath: (ctx: RouteContext) => string;
320
+ organizationLicenseOfferSearchPollPath: (ctx: RouteContext) => string;
321
+ submitAndPoll: (submitPath: string, pollPath: string, payload: {
322
+ thid?: string;
323
+ } & Record<string, unknown>, pollOptions?: {
324
+ timeoutMs?: number;
325
+ intervalMs?: number;
326
+ }) => Promise<SubmitAndPollResult>;
327
+ }): Promise<SubmitAndPollResult>;
328
+ export declare function listOrganizationLicenseOffersWithDeps(routeCtx: RouteContext, input: LicenseOfferRuntimeSearchInput | undefined, deps: Parameters<typeof searchOrganizationLicenseOffersWithDeps>[2]): Promise<SubmitAndPollResult>;
329
+ /**
330
+ * Searches commercial license orders/payment projections for one
331
+ * organization/tenant through `Order/_search`.
332
+ */
333
+ export declare function searchOrganizationLicenseOrdersWithDeps(routeCtx: RouteContext, input: LicenseOrderRuntimeSearchInput, deps: {
334
+ organizationLicenseOrderSearchPath: (ctx: RouteContext) => string;
335
+ organizationLicenseOrderSearchPollPath: (ctx: RouteContext) => string;
336
+ submitAndPoll: (submitPath: string, pollPath: string, payload: {
337
+ thid?: string;
338
+ } & Record<string, unknown>, pollOptions?: {
339
+ timeoutMs?: number;
340
+ intervalMs?: number;
341
+ }) => Promise<SubmitAndPollResult>;
342
+ }): Promise<SubmitAndPollResult>;
343
+ export declare function listOrganizationLicenseOrdersWithDeps(routeCtx: RouteContext, input: LicenseOrderRuntimeSearchInput | undefined, deps: Parameters<typeof searchOrganizationLicenseOrdersWithDeps>[2]): Promise<SubmitAndPollResult>;
258
344
  export declare function disableIndividualOrganizationWithDeps(routeCtx: RouteContext, input: IndividualOrganizationLifecycleInput, options: {
259
345
  timeoutMs?: number;
260
346
  intervalMs?: number;
@@ -281,6 +367,47 @@ export declare function purgeIndividualOrganizationWithDeps(routeCtx: RouteConte
281
367
  intervalMs?: number;
282
368
  }) => Promise<SubmitAndPollResult>;
283
369
  }): Promise<SubmitAndPollResult>;
370
+ /**
371
+ * Searches license seats for one individual/family controller context through
372
+ * the shared `License/_search` route.
373
+ */
374
+ export declare function searchIndividualLicensesWithDeps(routeCtx: RouteContext, input: LicenseListRuntimeSearchInput, deps: {
375
+ individualLicenseSearchPath: (ctx: RouteContext) => string;
376
+ individualLicenseSearchPollPath: (ctx: RouteContext) => string;
377
+ submitAndPoll: (submitPath: string, pollPath: string, payload: {
378
+ thid?: string;
379
+ } & Record<string, unknown>, pollOptions?: {
380
+ timeoutMs?: number;
381
+ intervalMs?: number;
382
+ }) => Promise<SubmitAndPollResult>;
383
+ }): Promise<SubmitAndPollResult>;
384
+ /**
385
+ * Lists license seats for the individual/family side using the same canonical
386
+ * search route without mandatory filters.
387
+ */
388
+ export declare function listIndividualLicensesWithDeps(routeCtx: RouteContext, input: LicenseListRuntimeSearchInput | undefined, deps: Parameters<typeof searchIndividualLicensesWithDeps>[2]): Promise<SubmitAndPollResult>;
389
+ export declare function searchIndividualLicenseOffersWithDeps(routeCtx: RouteContext, input: LicenseOfferRuntimeSearchInput, deps: {
390
+ individualLicenseOfferSearchPath: (ctx: RouteContext) => string;
391
+ individualLicenseOfferSearchPollPath: (ctx: RouteContext) => string;
392
+ submitAndPoll: (submitPath: string, pollPath: string, payload: {
393
+ thid?: string;
394
+ } & Record<string, unknown>, pollOptions?: {
395
+ timeoutMs?: number;
396
+ intervalMs?: number;
397
+ }) => Promise<SubmitAndPollResult>;
398
+ }): Promise<SubmitAndPollResult>;
399
+ export declare function listIndividualLicenseOffersWithDeps(routeCtx: RouteContext, input: LicenseOfferRuntimeSearchInput | undefined, deps: Parameters<typeof searchIndividualLicenseOffersWithDeps>[2]): Promise<SubmitAndPollResult>;
400
+ export declare function searchIndividualLicenseOrdersWithDeps(routeCtx: RouteContext, input: LicenseOrderRuntimeSearchInput, deps: {
401
+ individualLicenseOrderSearchPath: (ctx: RouteContext) => string;
402
+ individualLicenseOrderSearchPollPath: (ctx: RouteContext) => string;
403
+ submitAndPoll: (submitPath: string, pollPath: string, payload: {
404
+ thid?: string;
405
+ } & Record<string, unknown>, pollOptions?: {
406
+ timeoutMs?: number;
407
+ intervalMs?: number;
408
+ }) => Promise<SubmitAndPollResult>;
409
+ }): Promise<SubmitAndPollResult>;
410
+ export declare function listIndividualLicenseOrdersWithDeps(routeCtx: RouteContext, input: LicenseOrderRuntimeSearchInput | undefined, deps: Parameters<typeof searchIndividualLicenseOrdersWithDeps>[2]): Promise<SubmitAndPollResult>;
284
411
  export declare function importIpsOrFhirAndUpdateIndexWithDeps(routeCtx: RouteContext, input: IpsOrFhirImportInput, deps: {
285
412
  individualCompositionR4BatchPath: (ctx: RouteContext) => string;
286
413
  individualCompositionR4PollPath: (ctx: RouteContext) => string;
@@ -291,6 +418,32 @@ export declare function importIpsOrFhirAndUpdateIndexWithDeps(routeCtx: RouteCon
291
418
  intervalMs?: number;
292
419
  }) => Promise<SubmitAndPollResult>;
293
420
  }): Promise<SubmitAndPollResult>;
421
+ export declare function disableIndividualMemberWithDeps(routeCtx: RouteContext, input: IndividualMemberLifecycleInput, options: {
422
+ timeoutMs?: number;
423
+ intervalMs?: number;
424
+ } | undefined, deps: {
425
+ individualRelatedPersonBatchPath: (ctx: RouteContext) => string;
426
+ individualRelatedPersonPollPath: (ctx: RouteContext) => string;
427
+ submitAndPoll: (submitPath: string, pollPath: string, payload: {
428
+ thid?: string;
429
+ } & Record<string, unknown>, pollOptions?: {
430
+ timeoutMs?: number;
431
+ intervalMs?: number;
432
+ }) => Promise<SubmitAndPollResult>;
433
+ }): Promise<SubmitAndPollResult>;
434
+ export declare function purgeIndividualMemberWithDeps(routeCtx: RouteContext, input: IndividualMemberLifecycleInput, options: {
435
+ timeoutMs?: number;
436
+ intervalMs?: number;
437
+ } | undefined, deps: {
438
+ individualRelatedPersonPurgePath: (ctx: RouteContext) => string;
439
+ individualRelatedPersonPurgePollPath: (ctx: RouteContext) => string;
440
+ submitAndPoll: (submitPath: string, pollPath: string, payload: {
441
+ thid?: string;
442
+ } & Record<string, unknown>, pollOptions?: {
443
+ timeoutMs?: number;
444
+ intervalMs?: number;
445
+ }) => Promise<SubmitAndPollResult>;
446
+ }): Promise<SubmitAndPollResult>;
294
447
  export declare function upsertRelatedPersonAndPollWithDeps(routeCtx: RouteContext, input: RelatedPersonUpsertInput, deps: {
295
448
  individualRelatedPersonBatchPath: (ctx: RouteContext) => string;
296
449
  individualRelatedPersonPollPath: (ctx: RouteContext) => string;