import { D2Geometry, Preset } from "../schemas"; import { Id, Selector, SelectedPick } from "./base"; import { D2ApiResponse } from "./common"; import { D2ApiGeneric } from "./d2Api"; import { D2TrackerEnrollment, D2TrackerEnrollmentSchema, D2TrackerEnrollmentToPost } from "./trackerEnrollments"; import { RequiredBy } from "../utils/types"; export declare class TrackedEntities { d2Api: D2ApiGeneric; constructor(d2Api: D2ApiGeneric); get(params: TrackerTrackedEntitiesParams): D2ApiResponse>; private buildOrderParams; } declare type ProgramStatus = "ACTIVE" | "COMPLETED" | "CANCELLED"; declare type IsoDate = string; declare type SemiColonDelimitedListOfUid = string; declare type CommaDelimitedListOfUid = string; declare type CommaDelimitedListOfAttributeFilter = string; interface D2TrackerTrackedEntityBase { trackedEntity: Id; trackedEntityType: Id; createdAt: IsoDate; createdAtClient: IsoDate; updatedAt: IsoDate; updatedAtClient: IsoDate; orgUnit: SemiColonDelimitedListOfUid; inactive: boolean; deleted: boolean; relationships: Relationship[]; attributes: Attribute[]; enrollments: D2TrackerEnrollment[]; programOwners: ProgramOwner[]; geometry: Extract | Extract; } export declare type D2TrackerTrackedEntity = D2TrackerTrackedEntityBase; declare type RequiredFieldsOnPost = "orgUnit" | "trackedEntity" | "trackedEntityType" | "enrollments" | "attributes"; export declare type D2TrackedEntityInstanceToPost = Omit, "enrollments" | "attributes"> & { enrollments: D2TrackerEnrollmentToPost[]; attributes: AttributeToPost[]; }; interface ProgramOwner { orgUnit: Id; program: Id; trackedEntity: Id; } export interface Relationship { relationship: Id; relationshipType: Id; relationshipName: string; from: RelationshipItem; to: RelationshipItem; } export interface RelationshipItem { trackedEntity?: { trackedEntity: Id; }; event?: { event: Id; }; } export interface Attribute { attribute: Id; code?: string; displayName: string; createdAt: IsoDate; updatedAt: IsoDate; storedBy: string; valueType: string; value: string; } export declare type AttributeToPost = Pick; declare type TrackerTrackedEntitiesParams = Params & { fields: Fields; } & Partial<{ totalPages: boolean; page: number; pageSize: number; skipPaging: boolean; }>; declare type Params = RequiredBy; export declare type TrackedEntitiesParamsBase = { query: string; attribute: CommaDelimitedListOfUid; filter: CommaDelimitedListOfAttributeFilter; orgUnit: SemiColonDelimitedListOfUid; ouMode: "SELECTED" | "CHILDREN" | "DESCENDANTS" | "ACCESSIBLE" | "CAPTURE" | "ALL"; program: Id; programStatus: ProgramStatus; programStage: Id; followUp: boolean; updatedAfter: IsoDate; updatedBefore: IsoDate; updatedWithin: IsoDate; enrollmentEnrolledAfter: IsoDate; enrollmentEnrolledBefore: IsoDate; enrollmentOccurredAfter: IsoDate; enrollmentOccurredBefore: IsoDate; trackedEntityType: Id; trackedEntity: SemiColonDelimitedListOfUid; assignedUserMode: "CURRENT" | "PROVIDED" | "NONE" | "ANY"; assignedUsers: SemiColonDelimitedListOfUid; eventStatus: "ACTIVE" | "COMPLETED" | "VISITED" | "SCHEDULE" | "OVERDUE" | "SKIPPED"; eventOccurredAfter: IsoDate; eventOccurredBefore: IsoDate; skipMeta: boolean; includeDeleted: boolean; includeAllAttributes: boolean; potentialDuplicate: boolean; order: TrackedOrderBase[]; }; export declare type TrackedOrderBase = { direction: "asc" | "desc"; } & (TrackedOrderField | TrackedAttributesFields); export declare type TrackedOrderField = { type: "field"; field: "createdAtClient" | "createdAt" | "enrolledAt" | "inactive" | "trackedEntity" | "updatedAt"; }; export declare type TrackedAttributesFields = { type: "trackedEntityAttributeId"; id: Id; }; export declare type TrackedPager = { page: number; pageSize: number; pageCount?: number; total?: number; }; export interface TrackedEntitiesGetResponse extends TrackedPager { pager?: TrackedPager; instances: SelectedPick[]; } export interface D2TrackerTrackedEntitySchema { name: "D2TrackerTrackedEntity"; model: D2TrackerTrackedEntity; fields: Omit & { enrollments: D2TrackerEnrollmentSchema[]; }; fieldPresets: { $all: Omit, "enrollments"> & { enrollments: D2TrackerEnrollmentSchema["fieldPresets"]["$all"][]; }; $identifiable: never; $nameable: never; $persisted: never; $owner: never; }; } declare type D2TrackerTrackedEntityFields = Selector; export {};