import type { ActorKind, Capability } from 'gdc-common-utils-ts/models/actor-session'; import { HostOnboardingSdk } from './orchestration/host-onboarding-sdk.js'; import { IndividualControllerSdk } from './orchestration/individual-controller-sdk.js'; import { IndividualMemberSdk } from './orchestration/individual-member-sdk.js'; import { PersonalSdk } from './orchestration/personal-sdk.js'; import { OrganizationControllerSdk } from './orchestration/organization-controller-sdk.js'; import { OrganizationEmployeeSdk } from './orchestration/organization-employee-sdk.js'; import { ProfessionalSdk } from './orchestration/professional-sdk.js'; import { DigitalTwinSdk } from './orchestration/digital-twin-sdk.js'; import type { RuntimeClient } from './orchestration/client-port.js'; import { type ClinicalCreatorIpsExport, type DemoClinicalDocumentResourceIdContext } from 'gdc-sdk-core-ts'; export type NodeCapability = Capability; export type NodeActorSessionContext = { actorKind: ActorKind; actorDid?: string; subjectDid?: string; capabilities?: NodeCapability[]; }; /** * Preferred neutral actor-session context contract. * * Keep `NodeActorSessionContext` only as a compatibility alias while names are * converged across runtimes. */ export type ActorSessionContext = NodeActorSessionContext; export type DemoClinicalDocumentCloneOptions = Readonly<{ /** Protected profile projection; supplies stable FHIR author and attester. */ clinicalCreator?: ClinicalCreatorIpsExport; createResourceId?: (context: DemoClinicalDocumentResourceIdContext) => string; }>; /** * Preferred neutral actor session abstraction for runtime packages. * * Keep `NodeActorSession` only as a compatibility alias while package naming is * converged across node/front/other runtimes. */ export declare class ActorSession { readonly actorKind: ActorKind; /** Operational DID returned with the loaded actor profile, including its role-bearing path. */ readonly actorDid?: string; readonly subjectDid?: string; readonly capabilities: NodeCapability[]; private readonly client?; constructor(context: ActorSessionContext, client?: RuntimeClient); is(actorKind: ActorKind): boolean; assertActorKind(actorKind: ActorKind): void; asHostOnboarding(): HostOnboardingSdk; asOrganizationController(): OrganizationControllerSdk; asOrganizationEmployee(): OrganizationEmployeeSdk; asIndividualController(): IndividualControllerSdk; /** * Presents the reduced self-service surface for an individual-controller * actor whose selected relationship mode is ONESELF. */ asPersonal(): PersonalSdk; asIndividualMember(): IndividualMemberSdk; asProfessional(): ProfessionalSdk; /** Materializes the digital-twin facade for an organization employee or professional actor. */ asDigitalTwin(): DigitalTwinSdk; /** * Creates an editable demo copy whose stable FHIR author/attester come from * `options.clinicalCreator`. This session's operational `actorDid` remains a * compatibility fallback and belongs in the later write's sender field. */ cloneImportedClinicalDocumentForDemo(bundle: Record, options?: DemoClinicalDocumentCloneOptions): Record; private requireClient; } /** * @deprecated Prefer `ActorSessionContext`. */ export declare class NodeActorSession { private readonly inner; constructor(context: NodeActorSessionContext, client?: RuntimeClient); get actorKind(): ActorKind; get actorDid(): string | undefined; get subjectDid(): string | undefined; get capabilities(): NodeCapability[]; is(actorKind: ActorKind): boolean; assertActorKind(actorKind: ActorKind): void; asHostOnboarding(): HostOnboardingSdk; asOrganizationController(): OrganizationControllerSdk; asOrganizationEmployee(): OrganizationEmployeeSdk; asIndividualController(): IndividualControllerSdk; asPersonal(): PersonalSdk; asIndividualMember(): IndividualMemberSdk; asProfessional(): ProfessionalSdk; asDigitalTwin(): DigitalTwinSdk; cloneImportedClinicalDocumentForDemo(bundle: Record, options?: DemoClinicalDocumentCloneOptions): Record; }