import { TrackerEnrollments, D2TrackerEnrollmentToPost } from "./trackerEnrollments"; import { D2ApiResponse, Selector } from "./base"; import { AsyncPostResponse } from "./common"; import { D2ApiGeneric } from "./d2Api"; import { TrackerEvents, D2TrackerEventToPost } from "./trackerEvents"; import { TrackedEntities, D2TrackedEntityInstanceToPost, D2TrackerTrackedEntitySchema } from "./trackerTrackedEntities"; export declare class Tracker { d2Api: D2ApiGeneric; constructor(d2Api: D2ApiGeneric); get trackedEntities(): TrackedEntities; get enrollments(): TrackerEnrollments; get events(): TrackerEvents; post(params: TrackerPostParams, request: TrackerPostRequest): D2ApiResponse; postAsync(params: TrackerPostParams, request: TrackerPostRequest): D2ApiResponse>; } export declare function getTrackerFieldsParam>(fields: Fields): string; export interface TrackerPostRequest { trackedEntities?: D2TrackedEntityInstanceToPost[]; enrollments?: D2TrackerEnrollmentToPost[]; events?: D2TrackerEventToPost[]; } declare type SchemeOptions = "UID" | "CODE" | "NAME" | "ATTRIBUTE"; export declare type TrackerPostParams = Partial<{ async: boolean; reportMode: "FULL" | "ERRORS" | "WARNINGS"; importMode: "VALIDATE" | "COMMIT"; idScheme: SchemeOptions; dataElementIdScheme: SchemeOptions; orgUnitIdScheme: SchemeOptions; programIdScheme: SchemeOptions; programStageIdScheme: SchemeOptions; categoryOptionComboIdScheme: SchemeOptions; categoryOptionIdScheme: SchemeOptions; importStrategy: "CREATE" | "UPDATE" | "CREATE_AND_UPDATE" | "DELETE"; atomicMode: "ALL" | "OBJECT"; flushMode: "AUTO" | "OBJECT"; validationMode: "FULL" | "FAIL_FAST" | "SKIP"; skipPatternValidation: boolean; skipSideEffects: boolean; skipRuleEngine: boolean; }>; interface ErrorReport { message: string; errorCode: string; trackerType: string; uid: string; } interface Stats { created: number; updated: number; deleted: number; ignored: number; total: number; } interface ObjectReports { trackerType: "ENROLLMENT" | "TRACKED_ENTITY" | "RELATIONSHIP" | "EVENT"; uid: string; index: number; errorReports: ErrorReport[]; } interface BundleReport { status: "OK"; typeReportMap: { ENROLLMENT: { trackerType: "ENROLLMENT"; stats: Stats; objectReports: ObjectReports[]; }; TRACKED_ENTITY: { trackerType: "TRACKED_ENTITY"; stats: Stats; objectReports: ObjectReports[]; }; RELATIONSHIP: { trackerType: "RELATIONSHIP"; stats: Stats; objectReports: ObjectReports[]; }; EVENT: { trackerType: "EVENT"; stats: Stats; objectReports: ObjectReports[]; }; }; stats: Stats; } export interface TrackerPostResponse { status: "OK" | "ERROR" | "WARNING"; validationReport: { errorReports: ErrorReport[]; warningReports: ErrorReport[]; }; stats: Stats; bundleReport: BundleReport; timingsStats: {}; message: string; } export {};