declare enum ClientError {
    INVALID_API_VERSION = "Invalid API version",
    NOT_FOUND = "Request not found",
    ENTITY_ERROR = "Entity error",
    BAD_REQUEST = "Bad request",
    REQUEST_FAILED = "Request Failed",
    NO_CONNECTION = "No connection",
    SERVER_ERROR = "Server Error",
    INTERNAL_ERROR = "Internal error",
    GENERAL_ERROR = "General Error",
    GENERAL_REQUEST_ERROR = "General request error",
    AUTHENTICATION_ERROR = "Authentication Error",
    GATE_WAY_ERROR = "Gate way error",
    RECORD_CONFLICT = "Record conflict"
}
type IdentificationTypeName = 'OpenMRS Identification Number' | 'Old Identification Number' | 'National id' | 'ARV Number' | 'z_deprecated Pre ART Number (Old format)' | 'VHW ID' | 'District TB Number' | 'Dummy ID' | 'z_deprecated EID Number' | 'Unknown ID' | 'MDR-TB Program Identifier' | 'KS Number' | 'z_deprecated PART Number' | 'Diabetes Number' | 'LAB IDENTIFIER' | 'DS Number' | 'Filing number' | 'Archived filing number' | 'HCC Number' | 'Radiology Study Number' | 'IVR Access Code' | 'Pre-ART Number' | 'Serial Number' | 'HTC Identifier' | 'ANC Connect ID' | 'FUCHIA ID' | 'DDE person document ID' | 'Malawi National ID' | 'District IPT Number' | 'Legacy ARV Number';
type UserRoleName = 'Anonymous' | 'Provider' | 'System Developer' | 'Accompagnateur' | 'Accompagnateur Leader' | 'Adults' | 'Clinician' | 'Counselor' | 'Data Assistant' | 'Data Element Contributor' | 'Data Manager' | 'Doctor' | 'General Registration Clerk' | 'HMIS lab order' | 'HSA' | 'Informatics Manager' | 'Lab' | 'Medical Assistant' | 'Nurse' | 'Paediatrics' | 'Pharmacist' | 'Program Manager' | 'Registration Clerk' | 'Social Worker' | 'SPINE clinician' | 'Superuser' | '"Superuser,Superuser,"' | 'Supervisor' | 'Therapeutic Feeding Clerk' | 'Vitals Clerk' | 'Authenticated';
interface UpdatedUserI {
    given_name?: string;
    family_name?: string;
    password?: string;
    roles?: UserRoleName[];
    programs?: number[];
    must_append_roles?: boolean;
}
interface NewUserI {
    given_name: string;
    family_name: string;
    roles: UserRoleName[];
    username: string;
    password: string;
    programs?: number[];
}
interface RequestDataI {
    url: string;
    config: Record<string, any>;
}
interface UserI {
    deactivated_on: string | null;
    user_id: number;
    creator: number;
    person_id: number;
    changed_by: number;
    date_changed: string;
    system_id: string;
    username: string;
    date_created: string;
    retired: number;
    retired_by: number | null;
    date_retired: string | null;
    retire_reason: string;
    uuid: string;
    roles: RoleI[];
    programs: any[];
    person: PersonI;
}
interface RoleI {
    role: string;
    description: string;
    uuid: string;
}
interface PersonAddressI {
    person_address_id: number;
    person_id: number;
    preferred: number;
    address1: null | string;
    address2: string;
    city_village: string;
    state_province: string;
    postal_code: null | string;
    country: null | string;
    latitude: null | string;
    longitude: null | string;
    creator: number;
    date_created: string;
    voided: number;
    voided_by: null | number;
    date_voided: null | string;
    void_reason: null | string;
    county_district: string;
    neighborhood_cell: string;
    region: null | string;
    subregion: null | string;
    township_division: string;
    uuid: string;
}
interface PersonI {
    person_id: number;
    gender: string;
    birthdate: string | null;
    birthdate_estimated: number;
    dead: number;
    death_date: string | null;
    cause_of_death: string | null;
    creator: number;
    date_created: string;
    changed_by: number;
    date_changed: string;
    voided: number;
    voided_by: number | null;
    date_voided: string | null;
    void_reason: string | null;
    uuid: string;
    names: PersonNameI[];
    person_attributes: PersonAttributeI[];
    addresses: PersonAddressI[];
}
interface PersonNameI {
    person_name_id: number;
    preferred: number;
    person_id: number;
    prefix: string | null;
    given_name: string;
    middle_name: string;
    family_name_prefix: string | null;
    family_name: string;
    family_name2: string | null;
    family_name_suffix: string | null;
    degree: string | null;
    creator: number;
    date_created: string;
    voided: number;
    voided_by: number | null;
    date_voided: string | null;
    void_reason: string | null;
    changed_by: number | null;
    date_changed: string | null;
    uuid: string;
}
interface RequestBodyI {
    method: 'GET' | 'POST' | 'PUT' | 'DELETE';
    body?: string;
}
interface AuthorizationDataI {
    token: string;
    expiry_time: string;
    user: UserI;
}
interface DDESearchDemographicsI {
    given_name: string;
    family_name: string;
    gender: string;
}
interface DDESearchByDemographicsResponse {
    locals: PatientI[];
    remotes: PatientI[];
}
interface DDEclientMergeDataI {
    patient_id: number;
    doc_id: string;
}
/**
 * Data that is saved in session storage for persitence
 */
interface ApiDataI {
    host: string;
    token: string;
    tokenExpiryDate: string;
    userID: string;
    personID: string;
    username: string;
    userRoles: string;
}
/**
 * When making API calls, this object will be returns
 */
interface JsonRequestResponse<T = any> {
    /**
     * For successful API connections, ok will be true
     */
    ok: boolean;
    /**s
     * Retrieve client error type. Useful for handling specific errors
     */
    clientErrorType?: ClientError;
    /**
     * Generated error message
     */
    errorMessage?: string;
    /**
     * Response as returned by fetch request
    */
    httpStatusResponse?: number;
    /**
     * Any data returned by the API
    */
    data?: T;
}
interface ObsValueI {
    concept_id: number;
    value_text?: string;
    value_coded?: number;
    value_datetime?: string;
    value_modifier?: string | null;
    value_boolean?: string;
    value_numeric?: number;
    obs_group_id?: number;
    obs_datetime?: string;
}
interface NewObsI {
    encounter_id: number;
    observations: Array<ObsValueI>;
}
interface NewPatientI {
    given_name?: string;
    family_name?: string;
    gender?: string;
    birth_date?: string;
    home_district?: number;
    birthdate_estimated?: boolean;
    home_traditional_authority?: number;
    home_village?: number;
    current_district?: number;
    current_village?: number;
    current_traditional_authority?: number;
    cell_phone_number?: string;
    landmark?: string;
}
interface NewPersonAttributeI {
    person_id: number;
    person_attribute_type_id: number;
    value: number | string;
}
interface PersonAttributeTypeI {
    person_attribute_type_id: number;
    name: string;
    description: string;
    format: string;
    foreign_key: null;
    searchable: number;
    creator: number;
    date_created: Date;
    changed_by: number;
    date_changed: Date;
    retired: number;
    retired_by: null;
    date_retired: null;
    retire_reason: null;
    edit_privilege: null;
    uuid: string;
    sort_weight: number;
}
interface PersonAttributeI {
    person_attribute_id?: number;
    person_id: number;
    value: string;
    person_attribute_type_id: number;
    creator?: number;
    date_created?: Date;
    changed_by?: null;
    date_changed?: null;
    voided?: number;
    voided_by?: null;
    date_voided?: null;
    void_reason?: null;
    uuid?: string;
    type?: PersonAttributeTypeI;
}
interface NewPersonI {
    given_name: string;
    family_name: string;
    middle_name?: string;
    gender: string;
    birthdate: string;
    birthdate_estimated: boolean;
    home_district: string;
    home_traditional_authority: string;
    home_village: string;
    current_district: string;
    current_traditional_authority: string;
    current_village: string;
    landmark: string;
    cell_phone_number: string;
    occupation: string;
}
interface ModifyPersonI {
    program_id?: number;
    given_name?: string;
    family_name?: string;
    gender?: string;
    birthdate?: string;
    birthdate_estimated?: boolean;
    home_district?: string;
    home_traditional_authority?: string;
    home_village?: string;
    current_district?: string;
    current_traditional_authority?: string;
    current_village?: string;
    landmark?: string;
    cell_phone_number?: string;
    occupation?: string;
}
interface NewStateI {
    state: number;
    date: string;
}
interface NewTestsI {
    concept_id: number;
}
interface NewOrderI {
    accession_number: string;
    encounter_id: number;
    tests: NewTestsI[];
    reason_for_test_id: string;
    target_lab: string;
    date: string;
    requesting_clinician: string;
    specimen?: {
        concept_id: number;
    };
}
interface NewLabOrderI {
    encounter_id: number;
    order: NewOrderI[];
}
interface DrugI {
    drug_inventory_id: number;
    dose: number;
    drug?: any;
    dosage_struct?: any;
    order?: any;
    equivalent_daily_dose: number;
    frequency: string;
    start_date: string;
    auto_expire_date: string;
    instructions: string;
    units: string;
    quantity?: number;
}
interface PatientI {
    patient_id: number;
    tribe: string | null;
    creator: string;
    date_created: string;
    changed_by: number;
    date_changed: string;
    voided: number;
    voided_by: string | null;
    date_voided: string | null;
    void_reason: string | null;
    merge_history: any[];
    tpt_status: {
        tpt: string | null;
        completed: boolean;
        tb_treatment: boolean;
        tpt_init_date: string | null;
        tpt_complete_date: string | null;
        tpt_end_date: string | null;
    };
    art_start_date: string;
    person: PersonI;
    patient_identifiers: PatientIdentifierI[];
}
interface PatientIdentifierI {
    patient_identifier_id: number;
    patient_id: number;
    identifier: string;
    identifier_type: number;
    preferred: number;
    location_id: number;
    creator: number;
    date_created: string;
    voided: number;
    voided_by: number | null;
    date_voided: string | null;
    void_reason: string | null;
    uuid: string;
}
interface DemographicSearchParamsI {
    given_name?: string;
    family_name?: string;
    gender?: string;
    middle_name?: string;
    birthdate?: string;
}
interface RelationshipTypeI {
    relationship_type_id: number;
    a_is_to_b: string;
    b_is_to_a: string;
    preferred: number;
    weight: number;
    description: string;
    creator: number;
    date_created: string;
    uuid: string;
    retired: boolean;
    retired_by: null | number;
    date_retired: null | string;
    retire_reason: null | string;
}
interface RelationI {
    relationship_id: number;
    person_a: number;
    relationship: number;
    person_b: number;
    creator: number;
    date_created: string;
    voided: number;
    voided_by: null | number;
    date_voided: null | string;
    void_reason: null | string;
    uuid: string;
    type: RelationshipTypeI;
    relation: PersonI;
}
interface RegionI {
    region_id: number;
    name: string;
    creator: number;
    date_created: string;
    retired: boolean;
    retired_by: null | number;
    date_retired: null | string;
    retire_reason: null | string;
}
interface DistrictI {
    district_id: number;
    name: string;
    region_id: number;
    creator: number;
    date_created: string;
    retired: boolean;
    retired_by: null | number;
    date_retired: null | string;
    retire_reason: null | string;
}
interface TAI {
    traditional_authority_id: number;
    name: string;
    district_id: number;
    creator: number;
    date_created: string;
    retired: boolean;
    retired_by: null | number;
    date_retired: null | string;
    retire_reason: null | string;
}
interface VillageI {
    village_id: number;
    name: string;
    traditional_authority_id: number;
    creator: number;
    date_created: string;
    retired: boolean;
    retired_by: null | number;
    date_retired: null | string;
    retire_reason: null | string;
}
interface LocationI {
    location_id: number;
    name: string;
    description: string;
    address1: string;
    address2: string;
    city_village: string;
    state_province: string;
    postal_code: string;
    country: string;
    latitude: string;
    longitude: string;
    creator: number;
    date_created: string;
    county_district: null | string;
    neighborhood_cell: null | string;
    region: null | string;
    subregion: null | string;
    township_division: null | string;
    retired: boolean;
    retired_by: null | number;
    date_retired: null | string;
    retire_reason: null | string;
    location_type_id: null | number;
    parent_location: null | number;
    uuid: string;
    district: string;
}
interface NewDrugOrderI {
    encounter_id: number;
    drug_orders: DrugI[];
}
interface LoginAuthenticationResponse {
    authorization: AuthorizationDataI;
}
interface UserActivationI {
    message: string[];
    user: UserI;
}
interface UserPropertyI {
    user_id: number;
    property: string;
    property_value: string;
}
interface NewGlobalPropertyI {
    property: string;
    property_value: string;
    description: null | string;
    uuid: string;
}
interface ObsFiltersI {
    person_id?: number;
    concept_id?: number;
    encounter_id?: number;
    order_id?: number;
    value_coded?: number;
    value_datetime?: string;
    value_numeric?: number;
    accession_number?: number;
    value_text?: string;
    program_id?: number;
    date?: string;
    start_date?: string;
    end_date?: string;
}
interface ConceptNameI {
    concept_id: number;
    name: string;
    locale: string;
    creator: number;
    date_created: string;
    concept_name_id: number;
    voided: number;
    voided_by: any;
    date_voided: any;
    void_reason: any;
    uuid: string;
    concept_name_type: string;
    locale_preferred: number;
}
interface ConceptI {
    concept_id: number;
    retired: number;
    short_name: any;
    description: any;
    form_text: any;
    datatype_id: number;
    class_id: number;
    is_set: number;
    creator: number;
    date_created: string;
    default_charge: any;
    version: string;
    changed_by: any;
    date_changed: any;
    retired_by: any;
    date_retired: any;
    retire_reason: any;
    uuid: string;
    concept_names: ConceptNameI[];
}
interface ObservationI {
    obs_id: number;
    person_id: number;
    concept_id: number;
    encounter_id: number;
    order_id: any;
    obs_datetime: string;
    location_id: any;
    obs_group_id: any;
    accession_number: any;
    value_group_id: any;
    value_boolean: any;
    value_coded: any;
    value_coded_name_id: any;
    value_drug: any;
    value_datetime: any;
    value_numeric: number;
    value_modifier: any;
    value_text: any;
    date_started: any;
    date_stopped: any;
    comments: any;
    creator: number;
    date_created: string;
    voided: number;
    voided_by: any;
    date_voided: any;
    void_reason: any;
    value_complex: any;
    uuid: string;
    concept: ConceptI;
    children: ObservationI[];
}
interface EncounterFiltersI {
    program_id?: number;
    patient_id?: number;
    location_id?: number;
    encounter_type_id?: number;
    date?: string;
    page?: number;
    page_size?: number;
}
interface EncounterTypeI {
    encounter_type_id: number;
    name: string;
    description: string;
    creator: number;
    date_created: string;
    retired: number;
    retired_by: null | any;
    date_retired: null | any;
    retire_reason: null | any;
    uuid: string;
}
interface ProgramI {
    program_id: number;
    concept_id: number;
    creator: number;
    date_created: string;
    changed_by: number;
    date_changed: string;
    retired: number;
    name: string;
    description: string;
    uuid: string;
}
interface NewEncounterI {
    encounter_type_id: number;
    patient_id: number;
    program_id: number;
    provider_id?: number;
    encounter_datetime?: string;
}
interface EncounterI {
    encounter_id: number;
    encounter_type: number;
    patient_id: number;
    provider_id: number;
    location_id: number;
    form_id: null | any;
    encounter_datetime: string;
    creator: number;
    date_created: string;
    voided: number;
    voided_by: null | any;
    date_voided: null | any;
    void_reason: null | any;
    uuid: string;
    changed_by: number;
    date_changed: string;
    program_id: number;
    type: EncounterTypeI;
    patient: {
        patient_id: number;
        tribe: null | any;
        creator: number;
        date_created: string;
        changed_by: null | any;
        date_changed: null | any;
        voided: number;
        voided_by: null | any;
        date_voided: null | any;
        void_reason: null | any;
    };
    location: LocationI;
    provider: PersonI;
    program: ProgramI;
    observations: ObservationI[];
}
interface EncounterCountParamsI {
    encounter_types: number[];
    program_id?: number;
    date?: string;
}
interface UpdateEncounterI {
    type_id?: number;
    patient_id?: number;
    provider_id?: number;
    encounter_datetime?: string;
}
interface UserFiltersI {
    page_size?: number;
    page?: number;
    role?: UserRoleName;
}
interface ConceptFiltersI {
    name?: string;
    set?: string;
    page_size?: number;
    page?: number;
}

declare class export_default{
    programID: number;
    readonly NATIONAL_ID_TYPE = 3;
    constructor(programID: number);
    isDDeEnabled(): Promise<boolean>;
    enableDDe(): Promise<JsonRequestResponse<NewGlobalPropertyI>>;
    disableDDe(): Promise<JsonRequestResponse<NewGlobalPropertyI>>;
    findByNpid(npid: string): Promise<JsonRequestResponse<unknown>>;
    findByDemographics(demographics: DDESearchDemographicsI): Promise<JsonRequestResponse<DDESearchByDemographicsResponse>>;
    findVoidedNpid(npid: string): Promise<JsonRequestResponse<unknown>>;
    getRemainingNpids(): Promise<JsonRequestResponse<unknown>>;
    reassignNpid(docID: string, patientID: number): Promise<JsonRequestResponse<unknown>>;
    createNpID(npid: string, patientID: number): Promise<JsonRequestResponse<unknown>>;
    getLocalAndRemoteDiffs(patientID: number): Promise<JsonRequestResponse<unknown>>;
    updateLocalDiffs(diffs: any, patientID: number): Promise<JsonRequestResponse<unknown>>;
    refreshDemographics(patientID: number): Promise<JsonRequestResponse<unknown>>;
    importPatient(docID: string): Promise<JsonRequestResponse<PatientI>>;
    mergePatients(primary: DDEclientMergeDataI, secondary: DDEclientMergeDataI): Promise<JsonRequestResponse<unknown>>;
    checkPotentialDuplicates(demographics: Record<string, any>): Promise<JsonRequestResponse<unknown>>;
}

declare const _default$a: {
    get(property: string): Promise<JsonRequestResponse<Record<string, string>>>;
    set(property: string, propertyValue: string): Promise<JsonRequestResponse<NewGlobalPropertyI>>;
    isProp(property: string): Promise<boolean>;
};

declare const _default$9: {
    readonly AUTH: "_auth_";
    readonly HOST: "_host_";
    readonly KEEP_USER_LOGGED_IN_FLAG: "_keep_user_logged_in_";
    userRoles: RoleI[];
    host: string;
    token: string;
    username: string;
    userID: number;
    personID: number;
    tokenExpiryDate: string;
    sessionAvailable: boolean;
    canPersistLogin: boolean;
    interceptRequest: (req: RequestDataI) => RequestDataI;
    interceptResponse: (req: RequestDataI, res: JsonRequestResponse) => JsonRequestResponse;
    /**
     * This will return the current logged in user's name
     * @returns
     */
    getUsername(): string;
    /**
     * Get the logged in user's person id
     * @returns
     */
    getProviderID(): number;
    /**
     * Returns userID of currently logged in user
     * @returns
     */
    getUserID(): number;
    /**
     * Returns URL of API host
     * @returns
     */
    getHost(): string;
    /**
     * Configure API host URL i.e. http://localhost:3000 or https://emr.malawi.com
     * @param host
     */
    setHost(host: string): void;
    /**
     * Generic function for running API endpoints.
     * @param relativeUrl
     * @param data
     * @param baseUrl
     * @returns
     */
    restRequest<T = any>(relativeUrl: string, data: RequestBodyI, baseUrl?: string): Promise<JsonRequestResponse<T>>;
    /**
     * Authentication methord that creates a temporary session on the client side after a successful login
     * @param username
     * @param password
     * @returns
     */
    login(username: string, password: string, canPersistLogin?: boolean): Promise<JsonRequestResponse<LoginAuthenticationResponse>>;
    /**
     * Starts a new session by saving authentication data and updating the session state.
     * @param data - The authorization data containing token, expiry time, user details, and roles.
     */
    startSession(data: AuthorizationDataI): void;
    /**
     * Verifies a password reset token by making a POST request to the API.
     * If the token is valid, starts a new session with the returned authorization data.
     * @param token - The reset token to verify.
     * @returns A boolean indicating whether the token verification was successful.
     */
    verifyResetToken(token: string): Promise<boolean>;
    /**
     * Clears login session information on the client side
     */
    logout(): void;
    /**Simple check to verify login session */
    isLoggedIn(): boolean;
    /**
     * Validates provided roles against roles assigned to the current login user
     * @param roles
     * @returns
    */
    userHasRoles(roles: UserRoleName[]): boolean;
    /**
     * Perfoms GET http requests with optional parameters
     * @param url
     * @param params
     * @returns
     */
    getJson<T>(url: string, params?: Record<string, any>): Promise<JsonRequestResponse<T>>;
    /**
     * Perfoms POST http requests with provided data
     * @param url
     * @param data
     * @returns
     */
    postJson<T>(url: string, data: any): Promise<JsonRequestResponse<T>>;
    /**
      * Perfoms PUT http requests with provided data
      * @param url
      * @param data
      * @returns
      */
    putJson<T>(url: string, data: any): Promise<JsonRequestResponse<T>>;
    /**
     * Perfoms DELETE http requests with provided data
     * @param url
     * @param data
     * @returns
     */
    void<T>(url: string, params?: {}): Promise<JsonRequestResponse<T>>;
    /**
     * Method for validating expiration status of a token
     * @returns
     */
    tokenHasExpired(): boolean;
    /**
     * Perfoms a healthcheck operation to verify if the API is up
     * @returns
     */
    apiOk(): Promise<boolean>;
    /**
     * Gets current date from the API
     * @returns
     */
    getDate(): Promise<unknown>;
    /**
     * Gets current API version
     * @returns
     */
    getVersion(): Promise<string | undefined>;
    /**
     * Caches authentication data
     */
    saveState(): void;
    /**
     * Reads saved authentication state
     */
    loadState(): void;
    clearState(): void;
};

declare const _default$8: {
    all(params?: UserFiltersI): Promise<JsonRequestResponse<UserI[]>>;
    get(id: number): Promise<JsonRequestResponse<UserI>>;
    create(user: NewUserI): Promise<JsonRequestResponse<UserI>>;
    update(id: number, user: UpdatedUserI): Promise<JsonRequestResponse<UserI>>;
    activate(id: number): Promise<JsonRequestResponse<UserActivationI>>;
    deactivate(id: number): Promise<JsonRequestResponse<UserActivationI>>;
};

declare const _default$7: {
    get(property: string): Promise<JsonRequestResponse<UserPropertyI>>;
    set(property: string, propertyValue: string): Promise<JsonRequestResponse<UserPropertyI>>;
};

declare const _default$6: {
    all(params?: ObsFiltersI): Promise<JsonRequestResponse<ObservationI>>;
    create(encounterID: number, observations: ObsValueI[]): Promise<JsonRequestResponse<ObservationI>>;
    update(id: number, params: ObsValueI): Promise<JsonRequestResponse<ObservationI>>;
    void(id: number, reason: string): Promise<JsonRequestResponse<unknown>>;
};

declare const _default$5: {
    getCurrentFacility(): Promise<JsonRequestResponse<LocationI>>;
    getFacilities(params?: Record<string, string | number>): Promise<JsonRequestResponse<LocationI[]>>;
    getFacility(locationID: number): Promise<JsonRequestResponse<LocationI>>;
    getRegions(): Promise<JsonRequestResponse<RegionI[]>>;
    getDistricts(regionID: number): Promise<JsonRequestResponse<DistrictI[]>>;
    getTraditionalAuthorities(districtID: number, name?: string): Promise<JsonRequestResponse<TAI[]>>;
    getVillages(traditionalAuthorityID: number, name?: string): Promise<JsonRequestResponse<VillageI[]>>;
    createAddress(locationName: string, type: "Village" | "TA", parentLocationID: number): Promise<JsonRequestResponse<Record<"name", string>>>;
    getDistrictByID(id: number): Promise<DistrictI>;
    getTraditionalAuthorityById(id: number | string): Promise<TAI>;
};

declare const _default$4: {
    create(personId: number, programID: number): Promise<JsonRequestResponse<PatientI>>;
    searchBy(searchParams: DemographicSearchParamsI): Promise<JsonRequestResponse<PatientI[]>>;
    searchByNpid(npid: string): Promise<JsonRequestResponse<PatientI[]>>;
    searchByOtherID(idType: number, identifier: string): Promise<JsonRequestResponse<PatientI[]>>;
    getVisitDates(patientId: number, programID: number, params?: Record<string, any>): Promise<JsonRequestResponse<string[]>>;
    get(patientId: number): Promise<JsonRequestResponse<PatientI>>;
    getAll(patientIds: Array<number>): Promise<JsonRequestResponse<PatientI[]>>;
    void(patientId: number, reason: string): Promise<JsonRequestResponse<unknown>>;
};

declare const _default$3: {
    all(): Promise<JsonRequestResponse<NewPersonI>>;
    get(personId: number): Promise<JsonRequestResponse<PersonI>>;
    create(person: NewPersonI): Promise<JsonRequestResponse<PersonI>>;
    update(personId: number, programID: number, person: ModifyPersonI): Promise<JsonRequestResponse<PersonI>>;
    getSimilarFamilyNames(name: string): Promise<JsonRequestResponse<string[]>>;
    getSimilarMiddleNames(name: string): Promise<JsonRequestResponse<string[]>>;
    getSimilarGivenNames(name: string): Promise<JsonRequestResponse<string[]>>;
    getNames(personId: number): Promise<JsonRequestResponse<PersonNameI>>;
    void(personId: number, reason: string): Promise<JsonRequestResponse<unknown>>;
};

declare const _default$2: {
    createOrder(order: NewLabOrderI): Promise<JsonRequestResponse<unknown>>;
    getTestTypes(): Promise<JsonRequestResponse<unknown>>;
    getTestTypesBySpecimen(specimenType?: string): Promise<JsonRequestResponse<unknown>>;
    getSpecimens(testName: string): Promise<JsonRequestResponse<unknown>>;
    verifyAccessionNumber(accessionNumber: string): Promise<JsonRequestResponse<unknown>>;
};

declare const _default$1: {
    createOrder(orders: NewDrugOrderI[]): Promise<JsonRequestResponse<unknown>>;
    getDrugs(params?: Record<string, string | number>): Promise<JsonRequestResponse<unknown>>;
    getOPDDrugs(params?: Record<string, string | number>): Promise<JsonRequestResponse<unknown>>;
};

declare const _default: {
    all(params?: EncounterFiltersI): Promise<JsonRequestResponse<EncounterI[]>>;
    get(id: number): Promise<JsonRequestResponse<EncounterI>>;
    /**
        Generate a report on counts of various encounters
        POST /reports/encounters
        Optional parameters:
            all - Retrieves all encounters not just those created by current user
     */
    count(params: EncounterCountParamsI): Promise<JsonRequestResponse<Record<string, {
        M?: number;
        F?: number;
    }>>>;
    create(encounter: NewEncounterI): Promise<JsonRequestResponse<EncounterI>>;
    update(id: number, encounter: UpdateEncounterI): Promise<JsonRequestResponse<EncounterI>>;
    void(id: number, reason: string): Promise<JsonRequestResponse<unknown>>;
};

export { _default$9 as ApiCore, ApiDataI, AuthorizationDataI, ClientError, ConceptFiltersI, ConceptI, ConceptNameI, DDESearchByDemographicsResponse, DDESearchDemographicsI, DDEclientMergeDataI, export_default as DemographicExchange, DemographicSearchParamsI, DistrictI, _default$1 as Drug, DrugI, _default as Encounter, EncounterCountParamsI, EncounterFiltersI, EncounterI, EncounterTypeI, _default$a as GlobalProperty, IdentificationTypeName, JsonRequestResponse, _default$2 as Lab, _default$5 as Location, LocationI, LoginAuthenticationResponse, ModifyPersonI, NewDrugOrderI, NewEncounterI, NewGlobalPropertyI, NewLabOrderI, NewObsI, NewOrderI, NewPatientI, NewPersonAttributeI, NewPersonI, NewStateI, NewTestsI, NewUserI, _default$6 as Obs, ObsFiltersI, ObsValueI, ObservationI, _default$4 as Patient, PatientI, PatientIdentifierI, _default$3 as Person, PersonAttributeI, PersonAttributeTypeI, PersonI, PersonNameI, ProgramI, RegionI, RelationI, RelationshipTypeI, RequestBodyI, RequestDataI, RoleI, TAI, UpdateEncounterI, UpdatedUserI, _default$8 as User, UserActivationI, UserFiltersI, UserI, _default$7 as UserProperty, UserPropertyI, UserRoleName, VillageI };
