import { type AxiosResponse } from 'axios';
import { type PatientReadInputType, type PatientReadResponseType, type PatientCreateInputType, type PatientCreateResponseType, type PatientMatchInputType, type PatientMatchResponseType, type DocumentReferenceCreateInputType, type DocumentReferenceCreateResponseType, type AppointmentReadResponseType, type AppointmentReadInputType, type PatientSearchInputType, type PatientSearchResponseType } from './schema';
/**
 * FHIR R4 API Client
 */
export declare class EpicFhirR4Client {
    private readonly client;
    private readonly authUrl;
    private readonly clientId;
    private readonly privateKey;
    private accessToken;
    private tokenExpiry;
    constructor({ baseUrl, authUrl, clientId, privateKey, }: {
        baseUrl: string;
        authUrl: string;
        clientId: string;
        privateKey: string;
    });
    private refreshAccessToken;
    private isTokenExpired;
    getPatient(resourceId: PatientReadInputType): Promise<AxiosResponse<PatientReadResponseType>>;
    createPatient(data: PatientCreateInputType): Promise<AxiosResponse<PatientCreateResponseType>>;
    matchPatient(data: PatientMatchInputType): Promise<AxiosResponse<PatientMatchResponseType>>;
    searchPatient(data: PatientSearchInputType): Promise<AxiosResponse<PatientSearchResponseType>>;
    createDocumentReference(data: DocumentReferenceCreateInputType): Promise<AxiosResponse<DocumentReferenceCreateResponseType>>;
    getAppointment(resourceId: AppointmentReadInputType): Promise<AxiosResponse<AppointmentReadResponseType>>;
}
