import type { Coding, Questionnaire, QuestionnaireItem, QuestionnaireItemAnswerOption, QuestionnaireItemEnableWhen } from 'fhir/r4'; import type { CalculatedExpression } from '../../interfaces/calculatedExpression.interface'; import type { EnableWhenExpressions, EnableWhenItems, EnableWhenRepeatItemProperties, EnableWhenSingleItemProperties } from '../../interfaces/enableWhen.interface'; import type { AnswerExpression } from '../../interfaces/answerExpression.interface'; import type { ProcessedValueSet, ValueSetPromise } from '../../interfaces/valueSet.interface'; import type { Variables } from '../../interfaces/variables.interface'; import type { InitialExpression } from '../../interfaces/initialExpression.interface'; import type { AnswerOptionsToggleExpression } from '../../interfaces/answerOptionsToggleExpression.interface'; interface ReturnParamsRecursive { variables: Variables; enableWhenItems: EnableWhenItems; enableWhenExpressions: EnableWhenExpressions; calculatedExpressions: Record; initialExpressions: Record; answerExpressions: Record; valueSetPromises: Record; processedValueSets: Record; cachedValueSetCodings: Record; answerOptions: Record; answerOptionsToggleExpressions: Record; } export declare function extractOtherExtensions(questionnaire: Questionnaire, variables: Variables, valueSetPromises: Record, processedValueSets: Record, cachedValueSetCodings: Record, itemPreferredTerminologyServers: Record, terminologyServerUrl: string): Promise; /** * Get enableWhen items' linked items and enableBehaviour attribute and save them in an EnableWhenItemProperties object * * @author Sean Fong */ export declare function initialiseEnableWhenItemProperties(qItem: QuestionnaireItem, questionnaire: Questionnaire, parentLinkId?: string): { enableWhenItemType: 'single' | 'repeat'; enableWhenItemProperties: EnableWhenSingleItemProperties | EnableWhenRepeatItemProperties; } | null; export declare function initialiseEnableWhenRepeatItemProperties(qItem: QuestionnaireItem, enableWhen: QuestionnaireItemEnableWhen[], questionnaire: Questionnaire, parentLinkId: string): EnableWhenRepeatItemProperties | null; /** * Get enableWhen items' linked items and enableBehaviour attribute and save them in an EnableWhenItemProperties object * * @author Sean Fong */ export declare function initialiseEnableWhenSingleItemProperties(qItem: QuestionnaireItem, enableWhen: QuestionnaireItemEnableWhen[]): EnableWhenSingleItemProperties; export {};