import { D2ApiGeneric } from "./d2Api"; import { Id, Selector, D2ApiResponse, SelectedPick } from "./base"; import { Preset, D2Geometry } from "../schemas"; import { RequiredBy } from "../utils/types"; import { TrackedPager } from "./trackerTrackedEntities"; export declare class TrackerEvents { api: D2ApiGeneric; constructor(api: D2ApiGeneric); get(params: EventsParams): D2ApiResponse>; getById(id: string, params: EventsParams): D2ApiResponse; } declare type ProgramStatus = "ACTIVE" | "COMPLETED" | "CANCELLED"; declare type IsoDate = string; declare type Username = string; declare type CommaDelimitedListOfUid = string; declare type CommaDelimitedListOfAttributeFilter = string; declare type CommaDelimitedListOfDataElementFilter = string; declare type UserInfo = { uid: Id; username: string; firstName: string; surname: string; }; declare type EventStatus = "ACTIVE" | "COMPLETED" | "VISITED" | "SCHEDULE" | "OVERDUE" | "SKIPPED"; declare type IdScheme = string; interface D2TrackerEventBase { event: Id; status: EventStatus; program: Id; programStage: Id; enrollment: Id; enrollmentStatus: "ACTIVE" | "COMPLETED" | "CANCELLED"; orgUnit: Id; orgUnitName: string; occurredAt: IsoDate; scheduledAt: IsoDate; storedBy: Username; followup: boolean; deleted: boolean; createdAt: IsoDate; updatedAt: IsoDate; createdBy: UserInfo; attributeOptionCombo: Id; attributeCategoryOptions: Id; updatedBy: UserInfo; dataValues: DataValue[]; notes: Note[]; trackedEntity?: Id; } export declare type D2TrackerEvent = D2TrackerEventBase & { geometry?: Extract | Extract; }; declare type RequiredFieldsOnPost = "event" | "program" | "programStage" | "occurredAt" | "orgUnit" | "dataValues"; export declare type D2TrackerEventToPost = Omit, "dataValues"> & { dataValues: Array>; }; export declare type Note = { note: Id; storedAt: IsoDate; storedBy: Username; value: string; }; declare type EventsParams = EventsParamsBase & { fields: Fields; } & Partial<{ totalPages: boolean; page: number; pageSize: number; skipPaging: boolean; }>; interface EventsParamsBase { program?: Id; programStage?: Id; programStatus?: ProgramStatus; filter?: CommaDelimitedListOfDataElementFilter; filterAttributes?: CommaDelimitedListOfAttributeFilter; followUp?: boolean; trackedEntity?: Id; orgUnit?: Id; event?: Id; ouMode?: "SELECTED" | "CHILDREN" | "DESCENDANTS" | "ACCESSIBLE" | "CAPTURE" | "ALL"; status?: "ACTIVE" | "COMPLETED" | "VISITED" | "SCHEDULE" | "OVERDUE" | "SKIPPED"; occurredAfter?: IsoDate; occurredBefore?: IsoDate; scheduledAfter?: IsoDate; scheduledBefore?: IsoDate; updatedAt?: IsoDate; updatedAfter?: IsoDate; updatedBefore?: IsoDate; updatedWithin?: IsoDate; enrollmentEnrolledAfter?: IsoDate; enrollmentEnrolledBefore?: IsoDate; enrollmentOccurredAfter?: IsoDate; enrollmentOccurredBefore?: IsoDate; skipMeta?: boolean; dataElementIdScheme?: IdScheme; categoryOptionComboIdScheme?: IdScheme; orgUnitIdScheme?: IdScheme; programIdScheme?: IdScheme; programStageIdScheme?: IdScheme; idScheme?: IdScheme; order?: CommaDelimitedListOfUid; skipEventId?: boolean; attributeCc?: string; attributeCos?: string; includeDeleted?: boolean; assignedUserMode?: "CURRENT" | "PROVIDED" | "NONE" | "ANY"; assignedUser?: CommaDelimitedListOfUid; } export interface DataValue { updatedAt: IsoDate; storedBy: Username; createdAt: IsoDate; dataElement: Id; value: string; providedElsewhere?: boolean; } export interface TrackerEventsResponse extends TrackedPager { pager?: TrackedPager; instances: SelectedPick[]; } export interface D2TrackerEventSchema { name: "D2TrackerEvent"; model: D2TrackerEvent; fields: D2TrackerEvent; fieldPresets: { $all: Preset; $identifiable: never; $nameable: never; $persisted: Preset; $owner: Preset; }; } declare type D2TrackerEventFields = Selector; export {};