import type { SubmitAndPollResult } from 'gdc-sdk-core-ts'; import type { FamilyOrganizationSummary } from 'gdc-common-utils-ts/utils/family-organization-summary'; import type { IndividualOrganizationConfirmOrderInput, IndividualOrganizationOrderResult, RouteContext } from './individual-onboarding.js'; import type { IndividualOrganizationRegistrationInput, IndividualOrganizationRegistrationResult } from './individual-start.js'; import type { EnsureFamilyOrganizationRegistrationInput, EnsureFamilyOrganizationRegistrationResult } from './family-organization-registration.js'; import type { FamilyOrganizationSearchInput } from './family-organization-search.js'; import type { BlockchainArtifactRegistrationInput, ClinicalBundleSearchInput, ClinicalSectionUpdateInput, ClinicalSummaryReadResult, ClinicalSummaryRequestInput, ClinicalSummaryUpdateInput, CommunicationIngestionInput, IpsOrFhirImportInput } from './resource-operations.js'; import { type BackendIndividualControllerProfile, type BackendProfileRuntimeClient } from './backend-profile-runtime.js'; import type { ProfileLoadRequest } from 'gdc-sdk-core-ts'; /** * Backend use-case facade for the current individual-controller baseline. * * This class does not redefine the generic backend profile runtime. It wraps * that runtime with the current stable CORE-facing actions that backend * consumers need first: * * - load an individual-controller profile * - register an individual organization/subject index * - confirm the returned order/offer * - request the available subject clinical summary through Communication * - use direct index searches only for compatibility/specialized queries */ export declare class IndividualControllerBackendRuntime { private readonly profileRuntime; constructor(profileRuntime: BackendProfileRuntimeClient); /** * Loads one individual-controller backend profile and materializes its actor * facade in one step. */ loadProfile(input: ProfileLoadRequest): Promise; /** * Registers the personal organization/subject index and returns its Offer. * This does not enroll a wallet or a DCR device. */ registerIndividualOrganization(profile: BackendIndividualControllerProfile, input: IndividualOrganizationRegistrationInput): Promise; /** @deprecated Use `registerIndividualOrganization`. */ startIndividualOrganization(profile: BackendIndividualControllerProfile, input: IndividualOrganizationRegistrationInput): Promise; /** * Searches one existing family/individual registration before deciding * whether the backend should create or resume it. */ searchFamilyOrganization(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: FamilyOrganizationSearchInput): Promise; /** * High-level onboarding gate for channel apps: * search the registration first and only bootstrap when still missing. */ ensureFamilyOrganizationRegistration(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: EnsureFamilyOrganizationRegistrationInput): Promise; /** * Confirms the Offer returned by the individual registration and returns the * opaque controller activation code for managed profile enrollment. */ confirmIndividualOrganizationOrder(profile: BackendIndividualControllerProfile, input: IndividualOrganizationConfirmOrderInput): Promise; /** * Reads the authoritative subject document through the canonical * `Communication -> Subject/$summary -> FHIR Parameters` lifecycle. */ requestClinicalSummary(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: ClinicalSummaryRequestInput): Promise; /** * Compatibility/specialized direct search over the subject bundle index. * Prefer `requestClinicalSummary(...)` for the available clinical document. */ searchClinicalBundle(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: ClinicalBundleSearchInput): Promise; /** * Reads the latest IPS-oriented bundle through the loaded * individual-controller facade. */ getLatestIps(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: Omit): Promise; /** * Imports one IPS/FHIR payload through the direct Composition compatibility path. * * @deprecated Use the profile SDK's `updateClinicalSummary(...)` or * `updateSubjectSection(...)` Communication-backed operation. */ importIpsOrFhirAndUpdateIndex(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: IpsOrFhirImportInput): Promise; /** Ingests one controller-authored Communication and waits for indexing. */ ingestCommunicationAndUpdateIndex(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: CommunicationIngestionInput): Promise; /** Applies one explicit clinical-section batch. */ updateClinicalSection(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: ClinicalSectionUpdateInput): Promise; /** Applies one Composition-first multi-section clinical update. */ updateClinicalSummary(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: ClinicalSummaryUpdateInput): Promise; /** * Registers one FHIR resource or raw artifact on blockchain before it is * attached to a subject communication. */ registerBlockchainArtifactAndUpdateIndex(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: BlockchainArtifactRegistrationInput): Promise; }