export type ApiConfig = {
    countryCode?: CountryCode;
    apiVersion?: string;
    authKey?: string;
    url?: string;
    deviceId?: string;
    agent?: string;
};
export type CountryCode = "NL" | "DE" | "FR";
export type ImageSize = "tiny" | "small" | "medium" | "large" | "extra-large";
export type Link = {
    type: string;
    href: string;
};
/** Utility type to tag an object with a discriminant `type` field. */
export type Tagged<Type, Obj> = {
    type: Type;
} & Obj;
export type BasePriceDecorator = {
    type: "BASE_PRICE";
    base_price_text: string;
};
export type FreshLabelDecorator = {
    type: "FRESH_LABEL";
    period: string;
};
export type LabelDecorator = {
    type: "LABEL";
    text: string;
};
export type PriceDecorator = {
    type: "PRICE";
    display_price: number;
};
export type QuantityDecorator = {
    type: "QUANTITY";
    quantity: number;
};
export type BackgroundImageDecorator = {
    type: "BACKGROUND_IMAGE";
    image_ids: string[];
    height_percent: number;
};
export type DeeplinkReference = {
    type: "DEEPLINK";
    target: string;
};
export type SubBanner = {
    banner_id: string;
    image_id: string;
    display_time: string;
    description: string;
    reference: DeeplinkReference;
    position: string;
};
export type BannersDecorator = {
    type: "BANNERS";
    height_percentage: number;
    banners: SubBanner[];
};
export type UnitQuantityDecorator = {
    type: "UNIT_QUANTITY";
    unit_quantity_text: string;
};
export type OrderedQuantityDecorator = {
    type: "ORDERED_QUANTITY";
    image_id: string;
    quantity: string;
};
export type ProductSizeDecorator = {
    type: "PRODUCT_SIZE";
    text: string;
};
export type ValidityLabelDecorator = {
    type: "VALIDITY_LABEL";
    valid_until: string;
};
export type Position = {
    start_index: number;
    length: number;
};
export type Style = {
    position: Position;
    color: string;
    style: string;
};
export type TitleStyleDecorator = {
    type: "TITLE_STYLE";
    styles: Style[];
};
export type MoreButtonDecorator = {
    type: "MORE_BUTTON";
    link: Link;
    images: string[];
    sellable_item_count: number;
};
export type Explanation = {
    short_explanation: string;
    long_explanation: string;
};
export type Replacement = {
    type: "REPLACEMENT";
    display_price: number;
    image_id: string;
    replacement_type: string;
    id: string;
    name: string;
    unit_quantity: string;
    unit_quantity_sub?: string;
    price: number;
    tags: any[];
    decorators: Decorator[];
    max_count: number;
};
export type UnavailableDecorator = {
    type: "UNAVAILABLE";
    reason: string;
    replacements?: Replacement[];
    deeplink: string;
    explanation: Explanation;
};
export type Characteristics = {
    baby_month: string | null;
    rating: string | null;
    score: string | null;
    type: "FROZEN";
};
export type ProductCharacteristicsDecorator = {
    type: "PRODUCT_CHARACTERISTICS";
    characteristics: Characteristics[];
};
export type FailureReason = "PRODUCT_ABSENT" | "PRODUCT_LOW_QUALITY" | "PRODUCT_NOT_SHIPPED";
export type ArticleDeliveryFailureDecorator = {
    type: "ARTICLE_DELIVERY_FAILURES";
    failures: {
        [x: string]: FailureReason[];
    };
    prices: {
        [x: string]: number;
    };
};
export type ImmutableDecorator = {
    type: "IMMUTABLE";
};
export type BundlesButtonDecorator = {
    type: "BUNDLES_BUTTON";
    icon_color: string;
    deeplink: string;
    background_color: string;
};
/** Promotional label decorator (e.g. "BundelBonus"). Seen on order lines with bundle discounts. */
export type PromoDecorator = {
    type: "PROMO";
    /** Promotional label text (e.g. "BundelBonus"). */
    text: string;
    /** Background hex colour for the promo badge. */
    background_color: string;
    /** Foreground/text hex colour for the promo badge. */
    text_color: string;
};
export type Decorator = BasePriceDecorator | FreshLabelDecorator | LabelDecorator | PriceDecorator | BackgroundImageDecorator | BannersDecorator | QuantityDecorator | UnitQuantityDecorator | ValidityLabelDecorator | TitleStyleDecorator | MoreButtonDecorator | UnavailableDecorator | ImmutableDecorator | ArticleDeliveryFailureDecorator | BundlesButtonDecorator | PromoDecorator | OrderedQuantityDecorator | ProductSizeDecorator | ProductCharacteristicsDecorator;
//# sourceMappingURL=common.d.ts.map