import { Amp, Nmp, PaginatedListIterator, VmpGroup } from '@icure/cardinal-be-sam-sdk';
import { MedicationType } from '../../../shared/types';
import { MergeLazySortedNamedItemsService } from './merge-lazy-sorted-named-items.service';
import { TranslationService } from '../../../shared/services/translation/translation.service';
import * as i0 from "@angular/core";
export declare class MedicationLoaderService {
    private mergeService;
    private translationService;
    constructor(mergeService: MergeLazySortedNamedItemsService, translationService: TranslationService);
    private defaultLanguage;
    private get language();
    loadMedicationsPage(medications: PaginatedListIterator<Amp>, min: number, deliveryEnvironment: string, acc?: MedicationType[]): Promise<MedicationType[]>;
    loadMoleculesPage(molecules: PaginatedListIterator<VmpGroup>, min: number, acc?: MedicationType[]): Promise<MedicationType[]>;
    loadNonMedicinalPage(products: PaginatedListIterator<Nmp>, min: number, acc?: MedicationType[]): Promise<MedicationType[]>;
    loadUntil(toName: string | undefined, loadPage: () => Promise<MedicationType[]>): Promise<MedicationType[]>;
    loadMore(params: {
        medicationsPage: MedicationType[];
        moleculesPage: MedicationType[];
        productsPage: MedicationType[];
        medications: PaginatedListIterator<Amp> | undefined;
        molecules: PaginatedListIterator<VmpGroup> | undefined;
        products: PaginatedListIterator<Nmp> | undefined;
        deliveryEnvironment: string;
    }): Promise<{
        result: MedicationType[];
        updated: {
            medicationsPage: MedicationType[];
            moleculesPage: MedicationType[];
            productsPage: MedicationType[];
        };
    }>;
    static ɵfac: i0.ɵɵFactoryDeclaration<MedicationLoaderService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MedicationLoaderService>;
}
