import DivaApiHandler from '../../logic/DivaApiHandler';
import { OrderSetData } from '@crystaldesign/basket-model';
import { AdditionalModelInfos, CatalogMask } from '../../interface/AdditionalModelInfos';
import { DivaCatalogPropertiesType } from '../../interface/DivaCatalogDataType';
import { PlannerPaletteViewDataType } from '../../interface/PlannerPaletteViewDataType';
import { AlternativeRendering } from '../../interface/Rendering/AlternativeRendering';
import { PlannerStepsType } from '../../interface/API/ViewConfigDataType';
import DivaArticle from '../../logic/Article/DivaArticle';
import OptionCatalogData from '../Options/CatalogOptionData';
import OptionCatalogValueData from '../Options/CatalogOptionValueData';
import CatalogPlannerArticleData from '../Articles/CatalogPlannerArticleData';
import CatalogArticleData from '../Articles/Article/CatalogArticleData';
import DivaSet from '@crystaldesign/web-planner-logic/logic/Set/DivaSet';
export interface PlannerConfigParams {
    ignoreLayerAVC: boolean;
    ignoreLayerAVOAVU: boolean;
    ignoreLayerAVNAVS: boolean;
    showAccOnDpOnly: boolean;
    dockAccOnAvoOnly: boolean;
    updatePaletteAfterPlanningChanged?: boolean;
    hideAccessoriesInPlanner: boolean;
    hideAVButtons?: string;
    forceConstructionWarningForArticles?: string[];
    doHideCompletenessWarning?: boolean;
}
export interface VariantPriceObj {
    price: number;
    opt: string;
    opv: string;
    origPrice: number;
    calcTime: number;
    firstPrice: number;
    reversingCheck?: {
        checkingForReversingChanges: 'BLOCK' | 'WARN';
        hasReversingChanges: boolean;
        reversingVariantValues: {
            [opt: string]: {
                codex: string;
                label: string;
            };
        };
    };
    articleSnapshot?: {
        [basketId: string]: DivaArticle;
    };
}
export interface VariantTmpPriceObj {
    [basketId: string]: {
        config: {
            [codex: string]: string;
        };
        articleCodex: string;
    };
}
export default class DivaCatalogData {
    private options;
    private optionValues?;
    private catalogArticles;
    private catalogPlannerArticles;
    catalogProps: DivaCatalogPropertiesType;
    private catalogData;
    private additionalModelInfos?;
    private origProperties;
    plannerPaletteViewInfo: PlannerPaletteViewDataType;
    private _api;
    private variantsPriceHashObj;
    private _isIDMFormat;
    constructor(json: any, catalogCodex: string, orderSet: OrderSetData, api: DivaApiHandler, articleJson: any, plannerElementsJson?: any, isIDMFormat?: boolean, additionalModelInfos?: AdditionalModelInfos);
    getCatImageURL(filename: string, replaceExtWith: string): string;
    loadArticleData(catalogArticles: CatalogArticleData[], set: DivaSet): Promise<void>;
    get catalogCodex(): string;
    get catalogGuid(): string;
    get serieId(): string | undefined;
    get catalogName(): string;
    get origCatalogName(): string;
    get name_locales(): {
        [lang: string]: string;
    } | undefined;
    get longDescription(): string;
    get longDescription_locales(): {
        [lang: string]: string;
    } | undefined;
    get mediaUrl(): string | undefined;
    get accountGuid(): string;
    get accountName(): string;
    get accountLogo(): string;
    get collectionGuid(): string;
    get offlineData(): string | undefined;
    get offlineVersion(): string | undefined;
    get offlineFilesLastUpdate(): number | undefined;
    get retailCatalogNr(): string | undefined;
    get description(): string | undefined;
    getDecisionsByNo(decisionNos?: number[]): import("../..").IDMDecision[];
    getDecisionByNo(decisionNo: number): import("../..").IDMDecision | undefined;
    getPricefeaturegroups(prfgNos?: number[]): import("../..").PriceFeatureGroup[];
    getPricefeaturegroup(key: number): import("../..").PriceFeatureGroup | undefined;
    get loadedPriceFeaturegroups(): import("../..").PriceFeatureGroup[];
    get loadedDecisions(): import("../..").IDMDecision[];
    get globalDecisions(): import("../..").IDMDecision[];
    get loadedFeatureClasses(): import("../../interface/IDM/FeatureClass").FeatureClass[];
    getFeatureClass(featureClassNo: number): import("../../interface/IDM/FeatureClass").FeatureClass | undefined;
    get loadedFeatures(): import("../../interface/IDM/Feature").Feature[];
    getFeatures(featureRefs?: string[]): import("../../interface/IDM/Feature").Feature[];
    get loadedOptions(): import("../../interface/IDM/Feature").Option[];
    get subFolder(): string | undefined;
    get mainCategory(): string | undefined;
    get supplierGuid(): string | undefined;
    get supplierILN(): string | undefined;
    get retailArticleNr(): string | undefined;
    get accountSessionGuid(): string | undefined;
    get rounding(): 0 | 1 | 2 | 3 | undefined;
    get digits(): number | undefined;
    get useEkPrices(): boolean;
    get catalogPlannsCompletely(): boolean | undefined;
    set catalogPlannsCompletely(val: boolean | undefined);
    get additionalCatalogPrice(): {
        Price: number;
        FormattedPrice: any;
        Text: {
            [lang: string]: string;
        } | undefined;
    } | undefined;
    get archived(): boolean;
    get divaArReady(): boolean;
    get divaForceRTV(): boolean;
    get PlannerMeasureDigits(): number;
    get ShowAllItemsInPlanner(): boolean;
    get PlannerPaletteViewInfo(): PlannerPaletteViewDataType;
    get useGlobalSVGScale(): boolean;
    get usePosCountValue(): boolean;
    get useDecisionPosCountValue(): boolean;
    get checkCollisionForDifferentLayers(): number[];
    get useShelfPlannerRTV(): boolean;
    get articleConfigSingle(): boolean;
    get articleConfigAll(): boolean;
    get showAccessioreOnLastTab(): boolean;
    get hidePriceGroupsOfOPGs(): boolean;
    get forceConfigAllAccessoires(): boolean;
    get configAccessoires(): boolean;
    get configOnlyAccessoires(): boolean;
    get ignoreArticleRelations(): boolean;
    get startFilterParams(): string;
    get showAiRoomRenderingInSummary(): boolean;
    get startHideArticles(): string[];
    get replaceModeActive(): boolean;
    get getStartFilter(): string[];
    get dontHideOption(): string[];
    get dontSetPosNrFromPlanner(): boolean;
    get defaultGroupsClosed(): boolean | string[];
    get usePrgAsOpvArticleNr(): boolean;
    get useEdoArticlesOnOpvs(): {
        addExtraArticle: string;
        groupedUsedOPVs: string[][];
    }[];
    get has3dModels(): boolean;
    get roomList3DStaticBGImage(): Map<string, string[]>;
    get standardWhiteroom(): string;
    get diva3dCompatibleWithImageCache(): boolean;
    get doShow3DDimensionLines(): boolean;
    get doShowMainDimensions(): boolean;
    get defaultDimensionsActive(): boolean;
    get hidePlannerUiIcons(): boolean;
    get isIDM3DCat(): boolean;
    get IDM3DCatCodex(): string;
    get doCheckConstructionWarnings(): boolean;
    get forceConstructionWarningForArticles(): string[] | undefined;
    get doHideCompletenessWarning(): boolean;
    get mergeOptionsToSameOption(): string[][] | undefined;
    checkIfUseBoxPlanner(articleCodex: string[]): boolean;
    get useBoxPlanner(): boolean | string[];
    get plannerType(): PlannerStepsType | undefined;
    get ignoreIsDefinedCheck(): boolean;
    get hide2DPlanner(): boolean;
    get startPlannerArticle(): string[] | undefined;
    get accessorieStepAsPlanner(): boolean;
    get planner2Dot0(): boolean;
    get dontShowBasePrice(): boolean;
    getOption(opt: string): OptionCatalogData;
    setOption(option: OptionCatalogData): void;
    getOptions(): OptionCatalogData[];
    get forceConfigSingle(): boolean;
    getOptionValue(opv: string): OptionCatalogValueData | undefined;
    getOptionValues(): OptionCatalogValueData[];
    get initOptionTreeTwice(): boolean;
    get disable3DExport(): boolean;
    get useTypeNrAsArticleNrEKText(): boolean;
    get hasAlternateRenderings(): number;
    get alternateRenderings(): AlternativeRendering[];
    get autoOpenContentItem(): boolean | string[];
    get alternateRenderingsForSummary(): AlternativeRendering[];
    updateAlternativeRenderings(articles: {
        [baksetId: string]: DivaArticle;
    }): void;
    get summaryTabGroupPosition(): string[] | undefined;
    get bundleRules(): import("../../interface/Rules/BundleRules").default[] | undefined;
    get partlistPostFix(): {
        rule: string;
        postFix: string;
    }[];
    get notificationsRules(): import("../..").NotificationRule[] | undefined;
    get warningRules(): import("../..").WarningRule[] | undefined;
    get useDiomexConfigLogic(): boolean;
    get bannerRules(): import("../..").BannerRule[] | undefined;
    get dontSaveAlternativeRenderings(): boolean;
    get onConfigSingleDontGeneralize(): boolean;
    get showPricePreviewOnlyOnOptions(): string[] | undefined;
    get hidePricePreviewOnlyOnOptions(): string[] | undefined;
    get reconfigAfterArticleDocked(): boolean;
    get ignoreMaxPriceAsBP(): boolean;
    get headerDimensionIds(): string[];
    get filterForCheckoutButtons(): string[];
    get discountPercentage(): number | undefined;
    get promotedOpvs(): import("../../interface/AdditionalModelInfos").PromotedOpvs | undefined;
    get addNewLineBeforRuleDesc(): boolean;
    get dontUseVCodexInBasket(): boolean;
    get showAllItemsInPlanner(): boolean;
    get api(): DivaApiHandler;
    get isIDMFormat(): boolean;
    get idmOptionGroups(): {
        [optionGroupName: string]: string[];
    } | undefined;
    get idmFormulas(): {
        [optionGroupName: string]: string;
    } | undefined;
    get tabGroups(): import("../../interface/IDM/IDMCatalog").TabGroup[] | undefined;
    get divaKiReady(): boolean;
    get multiselectOptions(): string[];
    get catalogMask(): CatalogMask | undefined;
    set catalogMask(newMask: CatalogMask | undefined);
    getOptionsPosition(): string[];
    private updateMask;
    getVariantsPriceByHash(hash: string): VariantPriceObj;
    setVariantsPriceByHash(hash: string, data: VariantPriceObj): void;
    doUseRuleDescForPartListArticles(): boolean;
    repairVariantValues(variantValues: {
        [OPT: string]: string;
    }, articleCodex: string): {
        [OPT: string]: string;
    };
    get dontShowAccStep(): boolean;
    getPlannerConfig(): {
        ignoreLayerAVC: boolean;
        ignoreLayerAVOAVU: boolean;
        ignoreLayerAVNAVS: boolean;
        showAccOnDpOnly: boolean;
        dockAccOnAvoOnly: boolean;
        hideAccessoriesInPlanner: boolean;
        hideAVButtons: string | undefined;
        forceConstructionWarningForArticles: string[] | undefined;
        doHideCompletenessWarning: boolean;
    };
    private initProperties;
    private initPropertiesAfterOptionsInit;
    private handleDIVA3DMetaTag;
    getPlannerElement(codex: string): CatalogPlannerArticleData;
    getCatalogArticle(codex: string): CatalogArticleData;
    get allCatalogPlannerArticles(): {
        [articleCodex: string]: CatalogPlannerArticleData;
    };
    get allCatalogArticles(): {
        [articleCodex: string]: CatalogArticleData;
    };
    checkIfArticleCodexExists(articleCodex: string): boolean;
    getCatalogArticleByArticleCodex(articleCodex: string, throwError?: boolean): CatalogArticleData | undefined;
    private handleEdoArticles;
    private initMask;
}
export declare const mapMask: (mask?: CatalogMask) => CatalogMask | undefined;
//# sourceMappingURL=CatalogData.d.ts.map