import { TabGroup, OptionStep, ConfigStep } from '@crystaldesign/web-planner-logic';
import TabGroupState from '../States/UIState/Tabgroups';
export default class ConfiguratorStructureHandler {
    private configuratorSturucture;
    private curTabGroup;
    private curOption;
    private curConfigStep;
    private actGroupedConfigSteps;
    private _loadedConfigStepsOfActTabGroup;
    private tabGrousVisitedWithTargetArticles;
    private hideSingleOPVOnlyAlways;
    private onEnterPlannerMode;
    tabGroupState?: TabGroupState;
    private navigateStepByStep;
    constructor();
    initialize(tabGroupState: TabGroupState, configuratorStructure: Map<string, TabGroup>, hideSingleOPVOnlyAlways: boolean, onEnterPlannerMode: (firstTime: boolean) => void, navigateStepByStep: () => boolean): void;
    navigateForwards(forceNextOption?: boolean): void;
    navigateBackwards(): void;
    private getNewPosNr;
    filterOptionByFilterText(option?: OptionStep): boolean;
    private getPosNrNotInCurGroupedSteps;
    private getFirstPosNrOfTabGroup;
    private configStepIsInCurGroupedConfigSteps;
    private visitTabGroup;
    configStepKeyIsActive(key: string): boolean;
    get TabGrousVisitedWithTargetArticles(): {
        [TabGroupKey: string]: {
            [basketId: string]: string[];
        };
    };
    addAllPreviousTabGroupsAsVisited(configStepKey: string): void;
    addTabGrousVisitedWithTargetArticlesAndOptions(tabGroupKey: string, targetArticles: string[], options: string[]): void;
    getOptionsOfCurTabGroup(): string[];
    getOptionsOfTabGroup(tabGroup: TabGroup): string[];
    getOptionStepByCodex(codex: string): OptionStep | undefined;
    navigateToTabgroupByType(type: string): boolean;
    navigateToTabgroupByPosNr: (newTabGroupPosNr: number) => boolean;
    navigateToConfigStepByConfigStepKey(configStepKey: string): void;
    navigateToFirstOption(): void;
    selectArticleInOption(basketId: string): boolean;
    updateConfiguratorStructure(configuratorSturucture: Map<string, TabGroup>): void;
    setActStepByPosNrFromSummary(newActStepPosNr: number): void;
    getFirstConfigStepByOptionCodex(optionCodex: string): ConfigStep | undefined;
    getFirstConfigStepByVisibleOptionValueCodex(optionValueCodex: string): ConfigStep | undefined;
    getFirstConfigStepByTabgroup(tabGroup: string): any;
    private setActStepByPosNr;
    private callEnterFunctions;
    private callExitFunctions;
    private getConfigStepInOptionByBasketId;
    private getTabByPosNr;
    getConfigStepByPosNr(posNr: number): {
        tabGroup: TabGroup;
        optionStep: OptionStep;
        configStep: ConfigStep;
    } | null;
    getConfigStepByKey(key: string): {
        tabGroup: TabGroup;
        optionStep: OptionStep;
        configStep: ConfigStep;
    } | null;
    getConifgStepsToGroup(key: string, dontSetState?: boolean): ConfigStep[] | null;
    private isPartlistArtilceOfTargetArticles;
    private mergeOptionsWhoAreTheSame;
    getConfigStepsOfTabGroup(tabGroup: TabGroup): ConfigStep[];
    getArticlesOfConfigStep(key: string): string[] | null;
    getTargetArticleOfConfigStepArr(configSteps: ConfigStep[]): string[];
    getAllArticlesOfTabGroup(key: string): string[];
    getActiveArticlesOfTabGroup(key: string, configSingle: boolean): string[];
    getTargetArticleOfCurConfigStepArr(): string[] | undefined;
    tabGroupAlreadyVisited: (tabgroup?: TabGroup) => boolean;
    configStepAlreadyVisited: (configStep: ConfigStep) => boolean;
    getTabgroupCount(): number;
    getCurTabgroupCount(): number;
    getTabgroupByKey(key: string): TabGroup | undefined;
    getTabgroupByType(type: string): TabGroup | null;
    get allTabGroups(): Map<string, TabGroup>;
    get currentTabGroup(): TabGroup;
    get isFirstStep(): boolean;
    get isLastStep(): boolean;
    get actTargetArticles(): string[];
    get curConfigStepKey(): string;
    get curConfigStepPosNr(): number;
    get CurConfigStep(): ConfigStep;
    get curOptionCodex(): string;
    get curOCD(): string | undefined;
    get curOptionTitle(): string;
    get actGroupedConfigStepsCount(): number;
    get loadedConfigStepsOfActTabGroup(): ConfigStep[];
    get actGroupedOptionsCodexes(): string[];
    get curTabgroupType(): import("@crystaldesign/web-planner-logic").TabGroupTypes;
    get curTabgroupTitle(): string;
    get curTabgroupAlternativeRendering(): import("@crystaldesign/web-planner-logic").AlternativeRendering[];
    get curTabgroupKey(): string;
    private stepIsBoundedWithOtherOption;
    private updateView;
    get lastConfigStep(): ConfigStep | undefined;
    get configstepsDisplaySeparatOnTabgroup(): {
        [tabGroupKey: string]: {
            [targetArticle: string]: ConfigStep[];
        };
    };
    get visitedOptions(): {
        [basketId: string]: string[];
    };
    checkIfAnyConfigStepHasWarning(): false | {
        tabgroup: TabGroup;
        option: OptionStep;
        configStep: ConfigStep;
    };
}
//# sourceMappingURL=ConfiguratorStructureHandler.d.ts.map