import { LitElement, TemplateResult } from 'lit';
import { PrescriptionLine } from '../model/prescription-line';
import { EquivalentDrug } from '../model/equivalent-drug';
import { Dose } from '../model/dose';
import { EquivalentDrugWithDose } from '../model/equivalentDrugWithDose';
import { OutputDrugWithDose } from '../model/output/output-drug-with-dose';
export declare class VidalEquivalentForm extends LitElement {
    static styles: import("lit").CSSResult;
    prescriptionLine: PrescriptionLine;
    equivalentUcds: EquivalentDrug[];
    displayMoreCombinations: boolean;
    displayEquivalentsWithImpossibleDoses: boolean;
    private conversionService;
    private dosesCombinationsService;
    private readonly MAX_COMBINATIONS_DISPLAYED;
    selectedEquivalentCombinationForm: OutputDrugWithDose[];
    filteredEquivalentUcd: EquivalentDrug[];
    drugCombinationsWithAllDoses: {
        [p: string]: {
            dose: Dose[];
            equivalentDrug: EquivalentDrug;
        };
    }[];
    firstUpdated(): void;
    private validatePrescriptionLine;
    private handleNoCombinations;
    private buildDosesCombinations;
    private handleNoCombinationsFound;
    render(): TemplateResult<1>;
    private filterEquivalentsWithImpossibleDosages;
    switchDisplay(): void;
    displayCheckbox(): boolean;
    switchDisplayEquivalentsWithImpossibleDoses(event: Event): void;
    private buildUnitaryCombination;
    private getDispensingUnits;
    private isUnitAlreadyPresent;
    private convertAllPrescriptionDoses;
    private findDoseToConvert;
    private convertPrescriptionDoseInPrescribableRefUnit;
    sortEquivalentDrugCombinations(equivalentDrugCombinations: {
        [equivalentUri: string]: EquivalentDrugWithDose;
    }[]): {
        [equivalentUri: string]: EquivalentDrugWithDose;
    }[];
    private descendingNumberOfDivisionsComparator;
    private countNumberOfDecimalDoses;
    private ascendingNumberOfEquivalentsComparator;
    private ascendingNumberOfTakeComparator;
    private ascendingDose;
    private buildDrugCombinationsWithAllDoses;
    private selectDispensingUnitCombination;
    private displayEquivalent;
    private getDoseOrError;
    private substitutionLevel;
    buildSelectedEquivalentCombinationForm(event: Event, index: number, prescriptionLine: PrescriptionLine): void;
    private populateSelectedEquivalentCombinationForm;
    buildSelectedEquivalentForm(equivalentDrug: EquivalentDrug): void;
    sortCombinationsWithAllDosesByAscendingDose(drugCombinationsWithAllDoses: {
        [p: string]: {
            dose: Dose[];
            equivalentDrug: EquivalentDrug;
        };
    }[]): {
        [p: string]: {
            dose: Dose[];
            equivalentDrug: EquivalentDrug;
        };
    }[];
}
declare global {
    interface HTMLElementTagNameMap {
        'vidal-equivalent-form': VidalEquivalentForm;
    }
}
//# sourceMappingURL=vidal-equivalent-form.d.ts.map