import { TAGS } from './constants';
import { ISOXMLManager } from '../ISOXMLManager';
import { XMLElement } from '../types';
import { ProductRelation } from './ProductRelation';
import { Entity, EntityConstructor, ISOXMLReference } from '../types';
export declare enum ProductProductTypeEnum {
    SingleDefault = "1",
    Mixture = "2",
    TemporaryMixture = "3"
}
export type ProductAttributes = {
    ProductDesignator: string;
    ProductGroupIdRef?: ISOXMLReference;
    ValuePresentationIdRef?: ISOXMLReference;
    QuantityDDI?: string;
    ProductType?: ProductProductTypeEnum;
    MixtureRecipeQuantity?: number;
    DensityMassPerVolume?: number;
    DensityMassPerCount?: number;
    DensityVolumePerCount?: number;
    ProductRelation?: ProductRelation[];
    ProprietaryAttributes?: {
        [name: string]: string;
    };
    ProprietaryTags?: {
        [tag: string]: XMLElement[];
    };
};
export declare class Product implements Entity {
    attributes: ProductAttributes;
    isoxmlManager: ISOXMLManager;
    tag: TAGS;
    constructor(attributes: ProductAttributes, isoxmlManager: ISOXMLManager);
    static fromXML(xml: XMLElement, isoxmlManager: ISOXMLManager, internalId?: string, targetClass?: EntityConstructor): Promise<Entity>;
    toXML(): XMLElement;
}
