UNPKG

@documedis-components/prescription-sign

Version:

React component for signing electronic prescriptions with HIN authentication

1,024 lines (1,023 loc) 308 kB
import { HINClient } from './integration/hin'; import { PrescriptionSignContext, PrescriptionSignContextInputs, PrescriptionSignEvents } from './types'; /** * XState Machine * This machine manages the ePrescription signature process */ export declare const prescriptionSigningMachine: import('xstate').StateMachine<PrescriptionSignContext, { type: "OPEN_POPUP"; popupRef: Window | null; } | { type: "CLOSE_POPUP"; } | { type: "START"; encodedCHMED: string; shouldGeneratePdf: boolean; } | { type: "TERMINATE"; } | { type: "VERIFY_SESSION"; } | { type: "REFRESH_TOKEN"; } | { type: "GET_TOKEN"; } | { type: "GET_SAML_AUTH_CODE"; recoverable?: boolean; sessionToken: string; } | { type: "GET_SAML_AUTH_HANDLE"; authCode: string; } | { type: "VALIDATE_CHMED"; sessionToken: string; } | { type: "xstate.done.actor.getSAMLAuthHandle"; sessionToken: string; recoverable?: boolean; } | { type: "SIGN_PRESCRIPTION"; sessionToken: string; recoverable?: boolean; } | { type: "AUTHENTICATION_SUCCESS"; } | { type: "ERROR"; error: import('../../../../core/src/errors/index.ts').DomainError; } | { type: "UNAUTHORIZED_TOKEN"; } | { type: "UNAUTHORIZED_HANDLE"; }, { [x: string]: import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { sessionToken?: string; hinClient: HINClient; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { popupRef: Window | null; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; accessToken: string; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').PromiseActorLogic<void, { encodedCHMED?: string; parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; popupRef: Window | null; hinClient: HINClient; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').PromiseActorLogic<{ sessionToken: string; }, { hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; popupRef: Window | null; hinClient: HINClient; recover: boolean; sessionToken?: string; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').PromiseActorLogic<{ sessionToken: string; }, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; authCode: string; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').PromiseActorLogic<{ signedPrescription: string; generatedPdf?: string; }, { encodedCHMED?: string; shouldGeneratePdf: boolean; parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; recover: boolean; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { error: import('../../../../core/src/errors/index.ts').DomainError; }, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { signedCHMED?: string; generatedPdf?: string; }, import('xstate').EventObject>> | undefined; }, import('xstate').Values<{ openPopup: { src: "openPopup"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { sessionToken?: string; hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; }; trackPopup: { src: "trackPopup"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { popupRef: Window | null; }, import('xstate').EventObject>; id: string | undefined; }; listenAuthenticationMessage: { src: "listenAuthenticationMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; accessToken: string; }, import('xstate').EventObject>; id: string | undefined; }; listenSamlAuthMessage: { src: "listenSamlAuthMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; }; validateCHMED: { src: "validateCHMED"; logic: import('xstate').PromiseActorLogic<void, { encodedCHMED?: string; parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; verifySession: { src: "verifySession"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; initOAuth: { src: "initOAuth"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; popupRef: Window | null; hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; }; listenOAuthMessage: { src: "listenOAuthMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; refreshToken: { src: "refreshToken"; logic: import('xstate').PromiseActorLogic<{ sessionToken: string; }, { hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; initSAMLAuthCode: { src: "initSAMLAuthCode"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; popupRef: Window | null; hinClient: HINClient; recover: boolean; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; listenSAMLAuthCodeMessage: { src: "listenSAMLAuthCodeMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; }; getSAMLAuthHandle: { src: "getSAMLAuthHandle"; logic: import('xstate').PromiseActorLogic<{ sessionToken: string; }, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; authCode: string; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; signCHMEDRx: { src: "signCHMEDRx"; logic: import('xstate').PromiseActorLogic<{ signedPrescription: string; generatedPdf?: string; }, { encodedCHMED?: string; shouldGeneratePdf: boolean; parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; recover: boolean; }, import('xstate').EventObject>; id: string | undefined; }; errorHandler: { src: "errorHandler"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { error: import('../../../../core/src/errors/index.ts').DomainError; }, import('xstate').EventObject>; id: string | undefined; }; successHandler: { src: "successHandler"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { signedCHMED?: string; generatedPdf?: string; }, import('xstate').EventObject>; id: string | undefined; }; }>, import('xstate').Values<{ closePopup: { type: "closePopup"; params: import('xstate').NonReducibleUnknown; }; setAccessToken: { type: "setAccessToken"; params: import('xstate').NonReducibleUnknown; }; setError: { type: "setError"; params: import('xstate').NonReducibleUnknown; }; }>, never, never, "Idle" | { Started: { Popup: "Opening" | "Open" | "Closed"; Signing: "Authentication" | "SAMLAuth" | "Error" | "End" | "ValidatingCHMED" | "VerifySessionGuard" | "SigningCHMED" | "SAMLAuthCode" | "TokenRefreshing" | "OAuth" | "SAMLAuthHandle" | "Success"; }; }, string, PrescriptionSignContextInputs, import('xstate').NonReducibleUnknown, import('xstate').EventObject, import('xstate').MetaObject, { readonly context: ({ input }: { spawn: { <TSrc extends "openPopup" | "trackPopup" | "listenAuthenticationMessage" | "listenSamlAuthMessage" | "validateCHMED" | "verifySession" | "initOAuth" | "listenOAuthMessage" | "refreshToken" | "initSAMLAuthCode" | "listenSAMLAuthCodeMessage" | "getSAMLAuthHandle" | "signCHMEDRx" | "errorHandler" | "successHandler">(logic: TSrc, ...[options]: ({ src: "openPopup"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { sessionToken?: string; hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; } extends infer T ? T extends { src: "openPopup"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { sessionToken?: string; hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; } ? T extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T["logic"]> | undefined; syncSnapshot?: boolean; } & { [K in import('xstate').RequiredActorOptions<T>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T>>> : never : never : never) | ({ src: "trackPopup"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { popupRef: Window | null; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_1 ? T_1 extends { src: "trackPopup"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { popupRef: Window | null; }, import('xstate').EventObject>; id: string | undefined; } ? T_1 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_1["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_1["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_1 in import('xstate').RequiredActorOptions<T_1>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_1>>> : never : never : never) | ({ src: "listenAuthenticationMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; accessToken: string; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_2 ? T_2 extends { src: "listenAuthenticationMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; accessToken: string; }, import('xstate').EventObject>; id: string | undefined; } ? T_2 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_2["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_2["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_2 in import('xstate').RequiredActorOptions<T_2>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_2>>> : never : never : never) | ({ src: "listenSamlAuthMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_3 ? T_3 extends { src: "listenSamlAuthMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; } ? T_3 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_3["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_3["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_3 in import('xstate').RequiredActorOptions<T_3>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_3>>> : never : never : never) | ({ src: "validateCHMED"; logic: import('xstate').PromiseActorLogic<void, { encodedCHMED?: string; parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_4 ? T_4 extends { src: "validateCHMED"; logic: import('xstate').PromiseActorLogic<void, { encodedCHMED?: string; parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; } ? T_4 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_4["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_4["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_4 in import('xstate').RequiredActorOptions<T_4>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_4>>> : never : never : never) | ({ src: "verifySession"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_5 ? T_5 extends { src: "verifySession"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; } ? T_5 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_5["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_5["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_5 in import('xstate').RequiredActorOptions<T_5>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_5>>> : never : never : never) | ({ src: "initOAuth"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; popupRef: Window | null; hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_6 ? T_6 extends { src: "initOAuth"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; popupRef: Window | null; hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; } ? T_6 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_6["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_6["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_6 in import('xstate').RequiredActorOptions<T_6>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_6>>> : never : never : never) | ({ src: "listenOAuthMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_7 ? T_7 extends { src: "listenOAuthMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; } ? T_7 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_7["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_7["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_7 in import('xstate').RequiredActorOptions<T_7>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_7>>> : never : never : never) | ({ src: "refreshToken"; logic: import('xstate').PromiseActorLogic<{ sessionToken: string; }, { hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_8 ? T_8 extends { src: "refreshToken"; logic: import('xstate').PromiseActorLogic<{ sessionToken: string; }, { hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; } ? T_8 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_8["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_8["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_8 in import('xstate').RequiredActorOptions<T_8>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_8>>> : never : never : never) | ({ src: "initSAMLAuthCode"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; popupRef: Window | null; hinClient: HINClient; recover: boolean; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_9 ? T_9 extends { src: "initSAMLAuthCode"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; popupRef: Window | null; hinClient: HINClient; recover: boolean; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; } ? T_9 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_9["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_9["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_9 in import('xstate').RequiredActorOptions<T_9>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_9>>> : never : never : never) | ({ src: "listenSAMLAuthCodeMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_10 ? T_10 extends { src: "listenSAMLAuthCodeMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; } ? T_10 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_10["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_10["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_10 in import('xstate').RequiredActorOptions<T_10>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_10>>> : never : never : never) | ({ src: "getSAMLAuthHandle"; logic: import('xstate').PromiseActorLogic<{ sessionToken: string; }, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; authCode: string; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_11 ? T_11 extends { src: "getSAMLAuthHandle"; logic: import('xstate').PromiseActorLogic<{ sessionToken: string; }, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; authCode: string; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; } ? T_11 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_11["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_11["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_11 in import('xstate').RequiredActorOptions<T_11>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_11>>> : never : never : never) | ({ src: "signCHMEDRx"; logic: import('xstate').PromiseActorLogic<{ signedPrescription: string; generatedPdf?: string; }, { encodedCHMED?: string; shouldGeneratePdf: boolean; parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; recover: boolean; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_12 ? T_12 extends { src: "signCHMEDRx"; logic: import('xstate').PromiseActorLogic<{ signedPrescription: string; generatedPdf?: string; }, { encodedCHMED?: string; shouldGeneratePdf: boolean; parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; recover: boolean; }, import('xstate').EventObject>; id: string | undefined; } ? T_12 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_12["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_12["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_12 in import('xstate').RequiredActorOptions<T_12>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_12>>> : never : never : never) | ({ src: "errorHandler"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { error: import('../../../../core/src/errors/index.ts').DomainError; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_13 ? T_13 extends { src: "errorHandler"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { error: import('../../../../core/src/errors/index.ts').DomainError; }, import('xstate').EventObject>; id: string | undefined; } ? T_13 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_13["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_13["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_13 in import('xstate').RequiredActorOptions<T_13>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_13>>> : never : never : never) | ({ src: "successHandler"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { signedCHMED?: string; generatedPdf?: string; }, import('xstate').EventObject>; id: string | undefined; } extends infer T_14 ? T_14 extends { src: "successHandler"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { signedCHMED?: string; generatedPdf?: string; }, import('xstate').EventObject>; id: string | undefined; } ? T_14 extends { src: TSrc; } ? import('xstate').ConditionalRequired<[options?: ({ id?: T_14["id"] | undefined; systemId?: string; input?: import('xstate').InputFrom<T_14["logic"]> | undefined; syncSnapshot?: boolean; } & { [K_14 in import('xstate').RequiredActorOptions<T_14>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredActorOptions<T_14>>> : never : never : never)): import('xstate').ActorRefFromLogic<import('xstate').GetConcreteByKey<import('xstate').Values<{ openPopup: { src: "openPopup"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { sessionToken?: string; hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; }; trackPopup: { src: "trackPopup"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { popupRef: Window | null; }, import('xstate').EventObject>; id: string | undefined; }; listenAuthenticationMessage: { src: "listenAuthenticationMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; accessToken: string; }, import('xstate').EventObject>; id: string | undefined; }; listenSamlAuthMessage: { src: "listenSamlAuthMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; }; validateCHMED: { src: "validateCHMED"; logic: import('xstate').PromiseActorLogic<void, { encodedCHMED?: string; parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; verifySession: { src: "verifySession"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; initOAuth: { src: "initOAuth"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; popupRef: Window | null; hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; }; listenOAuthMessage: { src: "listenOAuthMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; refreshToken: { src: "refreshToken"; logic: import('xstate').PromiseActorLogic<{ sessionToken: string; }, { hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; initSAMLAuthCode: { src: "initSAMLAuthCode"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; popupRef: Window | null; hinClient: HINClient; recover: boolean; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; listenSAMLAuthCodeMessage: { src: "listenSAMLAuthCodeMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; }; getSAMLAuthHandle: { src: "getSAMLAuthHandle"; logic: import('xstate').PromiseActorLogic<{ sessionToken: string; }, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; authCode: string; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; signCHMEDRx: { src: "signCHMEDRx"; logic: import('xstate').PromiseActorLogic<{ signedPrescription: string; generatedPdf?: string; }, { encodedCHMED?: string; shouldGeneratePdf: boolean; parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; recover: boolean; }, import('xstate').EventObject>; id: string | undefined; }; errorHandler: { src: "errorHandler"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { error: import('../../../../core/src/errors/index.ts').DomainError; }, import('xstate').EventObject>; id: string | undefined; }; successHandler: { src: "successHandler"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { signedCHMED?: string; generatedPdf?: string; }, import('xstate').EventObject>; id: string | undefined; }; }>, "src", TSrc>["logic"]>; <TLogic extends import('xstate').AnyActorLogic>(src: TLogic, ...[options]: import('xstate').ConditionalRequired<[options?: ({ id?: never; systemId?: string; input?: import('xstate').InputFrom<TLogic> | undefined; syncSnapshot?: boolean; } & { [K in import('xstate').RequiredLogicInput<TLogic>]: unknown; }) | undefined], import('xstate').IsNotNever<import('xstate').RequiredLogicInput<TLogic>>>): import('xstate').ActorRefFromLogic<TLogic>; }; input: PrescriptionSignContextInputs; self: import('xstate').ActorRef<import('xstate').MachineSnapshot<PrescriptionSignContext, { type: "OPEN_POPUP"; popupRef: Window | null; } | { type: "CLOSE_POPUP"; } | { type: "START"; encodedCHMED: string; shouldGeneratePdf: boolean; } | { type: "TERMINATE"; } | { type: "VERIFY_SESSION"; } | { type: "REFRESH_TOKEN"; } | { type: "GET_TOKEN"; } | { type: "GET_SAML_AUTH_CODE"; recoverable?: boolean; sessionToken: string; } | { type: "GET_SAML_AUTH_HANDLE"; authCode: string; } | { type: "VALIDATE_CHMED"; sessionToken: string; } | { type: "xstate.done.actor.getSAMLAuthHandle"; sessionToken: string; recoverable?: boolean; } | { type: "SIGN_PRESCRIPTION"; sessionToken: string; recoverable?: boolean; } | { type: "AUTHENTICATION_SUCCESS"; } | { type: "ERROR"; error: import('../../../../core/src/errors/index.ts').DomainError; } | { type: "UNAUTHORIZED_TOKEN"; } | { type: "UNAUTHORIZED_HANDLE"; }, Record<string, import('xstate').AnyActorRef | undefined>, import('xstate').StateValue, string, unknown, any, any>, { type: "OPEN_POPUP"; popupRef: Window | null; } | { type: "CLOSE_POPUP"; } | { type: "START"; encodedCHMED: string; shouldGeneratePdf: boolean; } | { type: "TERMINATE"; } | { type: "VERIFY_SESSION"; } | { type: "REFRESH_TOKEN"; } | { type: "GET_TOKEN"; } | { type: "GET_SAML_AUTH_CODE"; recoverable?: boolean; sessionToken: string; } | { type: "GET_SAML_AUTH_HANDLE"; authCode: string; } | { type: "VALIDATE_CHMED"; sessionToken: string; } | { type: "xstate.done.actor.getSAMLAuthHandle"; sessionToken: string; recoverable?: boolean; } | { type: "SIGN_PRESCRIPTION"; sessionToken: string; recoverable?: boolean; } | { type: "AUTHENTICATION_SUCCESS"; } | { type: "ERROR"; error: import('../../../../core/src/errors/index.ts').DomainError; } | { type: "UNAUTHORIZED_TOKEN"; } | { type: "UNAUTHORIZED_HANDLE"; }, import('xstate').AnyEventObject>; }) => { popupRef: null; encodedCHMED: undefined; signedCHMED: undefined; generatedPdf: undefined; shouldGeneratePdf: false; sessionToken: string | undefined; accessToken: string; hinClient: HINClient; }; readonly id: "HINPrescriptionSigning"; readonly initial: "Idle"; readonly states: { readonly Idle: { readonly on: { readonly START: { readonly target: "Started"; readonly actions: import('xstate').ActionFunction<PrescriptionSignContext, { type: "START"; encodedCHMED: string; shouldGeneratePdf: boolean; }, { type: "OPEN_POPUP"; popupRef: Window | null; } | { type: "CLOSE_POPUP"; } | { type: "START"; encodedCHMED: string; shouldGeneratePdf: boolean; } | { type: "TERMINATE"; } | { type: "VERIFY_SESSION"; } | { type: "REFRESH_TOKEN"; } | { type: "GET_TOKEN"; } | { type: "GET_SAML_AUTH_CODE"; recoverable?: boolean; sessionToken: string; } | { type: "GET_SAML_AUTH_HANDLE"; authCode: string; } | { type: "VALIDATE_CHMED"; sessionToken: string; } | { type: "xstate.done.actor.getSAMLAuthHandle"; sessionToken: string; recoverable?: boolean; } | { type: "SIGN_PRESCRIPTION"; sessionToken: string; recoverable?: boolean; } | { type: "AUTHENTICATION_SUCCESS"; } | { type: "ERROR"; error: import('../../../../core/src/errors/index.ts').DomainError; } | { type: "UNAUTHORIZED_TOKEN"; } | { type: "UNAUTHORIZED_HANDLE"; }, undefined, import('xstate').Values<{ openPopup: { src: "openPopup"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { sessionToken?: string; hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; }; trackPopup: { src: "trackPopup"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { popupRef: Window | null; }, import('xstate').EventObject>; id: string | undefined; }; listenAuthenticationMessage: { src: "listenAuthenticationMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; accessToken: string; }, import('xstate').EventObject>; id: string | undefined; }; listenSamlAuthMessage: { src: "listenSamlAuthMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; }; validateCHMED: { src: "validateCHMED"; logic: import('xstate').PromiseActorLogic<void, { encodedCHMED?: string; parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; verifySession: { src: "verifySession"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; initOAuth: { src: "initOAuth"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; popupRef: Window | null; hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; }; listenOAuthMessage: { src: "listenOAuthMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; refreshToken: { src: "refreshToken"; logic: import('xstate').PromiseActorLogic<{ sessionToken: string; }, { hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; initSAMLAuthCode: { src: "initSAMLAuthCode"; logic: import('xstate').PromiseActorLogic<void, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; popupRef: Window | null; hinClient: HINClient; recover: boolean; sessionToken?: string; }, import('xstate').EventObject>; id: string | undefined; }; listenSAMLAuthCodeMessage: { src: "listenSAMLAuthCodeMessage"; logic: import('xstate').CallbackActorLogic<import('xstate').AnyEventObject, { hinClient: HINClient; }, import('xstate').EventObject>; id: string | undefined; }; getSAMLAuthHandle: { src: "getSAMLAuthHandle"; logic: import('xstate').PromiseActorLogic<{ sessionToken: string; }, { parent: import('xstate').ActorRef<import('xstate').AnyMachineSnapshot, PrescriptionSignEvents>; authCode: string; hinClient: HINClient; sessionToken?: string; }, import('xstate').EventObject>;