/// <reference types="fhir" />
import { DecryptedFhirRecord, FetchResponse, Params, Record } from './types';
export declare const prepareSearchParameters: ({ params, fallbackMode, }: {
    params: Params;
    fallbackMode?: null | 'fhirversion' | 'annotation';
}) => {
    limit?: number;
    offset?: number;
    fhirVersion?: string;
    start_date?: string;
    end_date?: string;
    tags?: string[];
    exclude_tags?: string[];
    exclude_flags?: string[];
    annotations?: string[];
    resourceType?: string;
    partner?: string;
};
export declare const convertToExposedRecord: (decryptedRecord: DecryptedFhirRecord) => {
    annotations: any;
    customCreationDate: Date;
    fhirResource: fhir.Resource;
    id: string;
    partner: string;
    updatedDate: Date;
};
declare const fhirService: {
    setFhirVersion(fhirVersion: string): void;
    getFhirVersion(): string;
    createResource(ownerId: string, fhirResource: fhir.DomainResource, date?: Date, annotations?: string[]): Promise<Record>;
    handleAttachments(ownerId: string, resource: fhir.DomainResource): Promise<(fhir.DomainResource | {
        commonKeyId: string;
        encryptedKey: any;
    } | any[])[]>;
    updateResource(ownerId: string, fhirResource: fhir.DomainResource, date: Date, annotations?: string[]): Promise<Record>;
    updateAttachments(ownerId: string, resource: fhir.DomainResource, annotations: string[]): Promise<(fhir.DomainResource | {
        commonKeyId: string;
        encryptedKey: any;
    } | any[])[]>;
    fetchResource(ownerId: string, resourceId: string): Promise<Record>;
    deleteResource(ownerId: string, resourceId: string): Promise<void>;
    countResources(ownerId: string, params?: Params): Promise<number>;
    fetchResources(ownerId: string, params?: Params): Promise<FetchResponse<Record>>;
    downloadResource(ownerId: string, resourceId: string, options?: {
        imageSize: string;
    }): Promise<Record>;
};
export default fhirService;
