import CatalogArticleData from '../../model/Articles/Article/CatalogArticleData';
import PlannerElement from '../../model/Planner/PlannerElementData';
import DivaArticle from '../../logic/Article/DivaArticle';
import ShelfPlanner from '../../logic/ConfigTree/Shelfplanner/ShelfPlanner';
import { ArticlePrefix } from './ArticlePrefixesType';
import { Decision } from '../OptionTypes/DecisionType';
import DivaSet from '../../logic/Set/DivaSet';
import DivaCatalogData from '../../model/Catalog/CatalogData';
import { IDMDecision } from '../IDM/Decision';
import { PriceObject } from './PriceObject';
import { PriceFeatureGroup } from '../IDM/PriceFeatureGroup';
export default interface ArticleDataType {
    basketId: string;
    elementId?: number;
    set: DivaSet;
    catalogData: DivaCatalogData;
    catalogArticle: CatalogArticleData;
    plannerElement?: PlannerElement;
    toDeleteAfterInit: boolean;
    deleted?: boolean;
    articlePrices?: any;
    actDescription: string;
    actDescription_locales?: {
        [lang: string]: string;
    };
    configArticleCodex?: string;
    typeNr?: string;
    image?: string;
    posNr: number;
    quantity: number;
    price: number;
    calcPrice?: number;
    calcWidth: number;
    calcDepth: number;
    calcHeight: number;
    hasPlannerArticle: boolean;
    priceRefs: PriceObject[];
    showDPs?: any[];
    relatedToBasketId?: string;
    isPartlistArticle: boolean;
    hasPartlistArticle: boolean;
    hasPartlistArticleInitialized: boolean;
    hasDecisionsInitialized: boolean;
    partlistRule?: {
        [opt: string]: string;
    };
    partlistDecisionNo?: number;
    partlistArticleVisibleInTree: boolean;
    partlistArticleStandalone: boolean;
    partlistGroupPrefix?: string;
    partlistArticles: {
        [basketId: string]: DivaArticle;
    };
    previousPartlistArticles?: {
        [basketId: string]: any;
    };
    partListParentArticle?: DivaArticle;
    partListDecisions?: {};
    accessoireParentArticle?: DivaArticle;
    accessoires: {
        [basketId: string]: DivaArticle;
    };
    accessoirePos: {
        [groupName: string]: {
            [basketId: string]: number[];
        };
    };
    relatedToSubItem?: string;
    retailArticleNr?: string;
    retailPrefix?: ArticlePrefix;
    defaultHeaderValues?: {};
    articleTabs?: any[];
    activeTab?: 0;
    treeInitialized: boolean;
    plannerWarning?: string;
    ekPriceToken?: string;
    shelfPlanData?: any;
    doorPlannerData?: any;
    shelfPlanner?: ShelfPlanner;
    relatedToShelf?: string;
    relatedToShelfGrid?: number;
    loadingErrors: any[];
    opvInitialized: boolean;
    subRetailTypeNr?: string;
    subRetailArticleNr?: string;
    AccPositions?: string[];
    updatedOPVbyConstructionRules?: any;
    updatedAccbyConstructionRules?: any;
    updatedOPVbyDockedOPVConstructionRules?: any;
    updatedOPVbyOPVConstructionRules?: any;
    updatedOPVbyParentOPVConstructionRules?: any;
    ruleDesc?: string;
    ruleDesc_locales?: {
        [lang: string]: string;
    };
    noPrice: boolean;
    doUpdatePlannerSize: boolean;
    newPossibleAVRFilters?: string[];
    newPossibleAVLFilters?: string[];
    supplierOrderCodex?: string;
    initDecisions?: (Decision | IDMDecision)[];
    optionsForPrint?: string[];
    optionImgForPrint?: string;
    discountPercentage?: number;
}
export interface Snapshot {
    [codex: string]: {
        selOPV: string;
        visibleOPVs: string[];
        optName: string;
        invisible: boolean;
    };
}
export interface DecisionDebug {
    text: string;
    nr: string | number;
    decision: Decision | IDMDecision;
    snapshots: {
        before: Snapshot;
        after: Snapshot;
    };
}
export interface PriceDebug {
    text: string;
    nr: string | number;
    priceFeatureGroup: PriceFeatureGroup;
    variantValues?: {
        [opt: string]: string;
    };
    /** Percentage value when isPercentage (e.g. 30 for 30%) */
    percentageValue?: number;
}
export interface PartlistDebugEntry {
    loaded: boolean;
    itemRefTypeNo: string;
    articleCodex: string;
    catalogCodex?: string;
    partlistGroup?: string;
    sequenceNo?: number;
    reason: string;
    decisionNo?: number;
    decisionPositive?: boolean;
    quantity?: number;
    basketId?: string;
}
/** Obvious data creation issues logged when logDecisions is true (e.g. no SVG for config, rule with no conditions). */
export interface DataCreationError {
    code: string;
    message: string;
    severity?: 'error' | 'warning';
    custom?: Record<string, unknown>;
}
//# sourceMappingURL=ArticleDataType.d.ts.map