import { type Obs, type Concept, type OpenmrsResource } from '@openmrs/esm-framework'; export interface RESTPatientNote extends OpenmrsResource { uuid: string; display: string; encounterDatetime: string; encounterType: { name: string; uuid: string }; encounterProviders: [{ encounterRole: { uuid: string; display: string }; provider: { person: { display: string } } }]; location: { uuid: string; display: string; name: string }; obs: Array; diagnoses: Array; } export interface PatientNote { encounterUuid: string; obsUuid: string; encounterNote: string; encounterNoteRecordedAt: string; encounterProvider: string; conceptUuid: string; encounterTypeUuid: string; isEdited: boolean; lastEditedBy: string; lastEditedAt: string; editHistory: Array<{ note: string; recordedAt: string; recordedBy: string; }>; } export interface UsePatientNotes { patientNotes: Array | null; errorFetchingPatientNotes: Error; isLoadingPatientNotes: boolean; isValidatingPatientNotes?: boolean; mutatePatientNotes: () => void; } export interface ObsData { uuid: string; concept: Concept; value?: string | number | boolean | OpenmrsResource; groupMembers?: Array<{ concept: Concept; value?: string | number | boolean | OpenmrsResource; }>; obsDatetime: string; creator?: { display: string; person?: { display: string } }; previousVersions?: Array< Obs & { creator: { display: string; person?: { display: string } }; } >; dateCreated: string; } export interface NoteObsData extends Omit { value: string; }