import type { Questionnaire, QuestionnaireItem, QuestionnaireResponse, QuestionnaireResponseItem } from 'fhir/r4'; import type { Tabs } from '../interfaces'; export declare function getQuestionnaireItem(questionnaire: Questionnaire, targetLinkId: string): QuestionnaireItem | null; export declare function getQuestionnaireResponseItem(questionnaireResponse: QuestionnaireResponse, targetLinkId: string): QuestionnaireResponseItem | null; export declare function replaceQuestionnaireResponseItem(questionnaireResponse: QuestionnaireResponse, targetLinkId: string, newQRItem: QuestionnaireResponseItem | null): QuestionnaireResponse; export declare function getParentItem(questionnaire: Questionnaire, targetLinkId: string): QuestionnaireItem | null; export declare function getRepeatGroupParentItem(questionnaire: Questionnaire, targetLinkId: string): QuestionnaireItem | null; /** * Returns the section heading text for a given linkId in a questionnaire, used to label tab sections. * * @param questionnaire - The FHIR Questionnaire to search through. * @param targetLinkId - The linkId of the target item. * @param tabs - Tab definitions used to match section headings. * @returns The section heading text if found, otherwise null. */ export declare function getSectionHeading(questionnaire: Questionnaire, targetLinkId: string, tabs: Tabs): string | null; export declare function getSectionHeadingRecursive(qItem: QuestionnaireItem, targetLinkId: string, heading: string | null, tabs: Tabs): string | null; /** * Checks whether the item with the given linkId is nested under a grid item in the questionnaire. * The item itself is not considered — only its ancestors are checked. * * @param questionnaire - The FHIR Questionnaire to search through * @param targetLinkId - The linkId of the item to check * @returns True if the item is nested under a grid item, false otherwise */ export declare function isItemInGrid(questionnaire: Questionnaire, targetLinkId: string): boolean; /** * Retrieves a `QuestionnaireResponseItem` using a FHIRPath-compatible path string. * * @param questionnaireResponse - The `QuestionnaireResponse` resource to search. * @param fhirPathString - A FHIRPath string that locates the item, e.g., "item.where(linkId='g1').item.where(linkId='q1')[0]" * @returns The matching `QuestionnaireResponseItem` or `null` if not found. */ export declare function getQuestionnaireResponseItemViaFhirPath(questionnaireResponse: QuestionnaireResponse, fhirPathString: string): QuestionnaireResponseItem | null;