import { Operation } from 'fast-json-patch'; import { Bundle, FhirResource } from 'fhir/r4b'; import { ZapEHRClientRequest } from '../../client/client'; import { BatchInput } from './types'; /** * Optional parameter that can be passed to the client methods. It allows * overriding the access token or project ID, and setting various headers, * such as 'Content-Type'. Also support enabling optimistic locking. */ export interface ZapEHRFHIRUpdateClientRequest extends ZapEHRClientRequest { /** * Enable optimistic locking for the request. If set to a version ID, the request will * include the 'If-Match' header with that value in the FHIR optimistic-locking format. * If the resource has been updated since the version provided, the request * will fail with a 412 Precondition Failed error. */ optimisticLockingVersionId?: string; } type FhirData = T | T[] | Bundle; type FhirFetcherResponse = any> = T; /** * @deprecated Use `search` instead * * Performs a FHIR search and returns the results as an array of FHIR resources * * @param options FHIR resource type and FHIR search parameters * @param request optional ZapEHRClientRequest object * @returns Array of FHIR resources */ export declare function list({ resourceType, params }: Parameters[0], request?: ZapEHRClientRequest): Promise>; /** * @deprecated Use `search` instead * * Performs a FHIR search and returns the results as a Bundle resource * * @param options FHIR resource type and FHIR search parameters * @param request optional ZapEHRClientRequest object * @returns FHIR Bundle resource */ export declare function listAsBundle({ resourceType, params }: { resourceType: string; params?: { name: string; value: string | number; }[]; }, request?: ZapEHRClientRequest): Promise>>; /** * Performs a FHIR search and returns the results as a Bundle resource * * @param options FHIR resource type and FHIR search parameters * @param request optional ZapEHRClientRequest object * @returns FHIR Bundle resource */ export declare function search({ resourceType, params }: { resourceType: string; params?: { name: string; value: string | number; }[]; }, request?: ZapEHRClientRequest): Promise>>; export declare function create(params: T, request?: ZapEHRClientRequest): Promise>; export declare function get({ resourceType, id }: { resourceType: string; id: string; }, request?: ZapEHRClientRequest): Promise>; export declare function update(params: T, request?: ZapEHRFHIRUpdateClientRequest): Promise>; export declare function patch({ resourceType, id, operations }: { resourceType: string; id: string; operations: Operation[]; }, request?: ZapEHRFHIRUpdateClientRequest): Promise>; declare function del({ resourceType, id }: { resourceType: string; id: string; }, request?: ZapEHRClientRequest): Promise>; export { del as delete }; export declare function history({ resourceType, id }: { resourceType: string; id: string; }, request?: ZapEHRClientRequest): Promise>>; export declare function history({ resourceType, id, versionId }: { resourceType: string; id: string; versionId: string; }, request?: ZapEHRClientRequest): Promise>; export declare const batch: (input: BatchInput, request?: ZapEHRClientRequest) => Promise>; export declare const transaction: (input: BatchInput, request?: ZapEHRClientRequest) => Promise>;