import ConfiguratorStructureHandler from '../../../TabGroup/ConfiguratorStructureHandler';
import UIState from '..';
import DivaWebPlanner, { TabGroup, ConfigStep, OptionStep } from '@crystaldesign/web-planner-logic';
import ViewPlannerHandler from '../../../Planner/ViewPlannerHandler';
import ProductState from '../Product';
import SettingsState from '../Settings';
import { Event } from '@crystaldesign/diva-core';
import AIState from '../AI';
export default class TabGroupState {
    private uiState;
    private configuratorStructureHandler;
    private viewPlannerHandler;
    private divaWebPlanner;
    private productState;
    private settingsState;
    private aiState;
    configuratorSturucture: Map<string, TabGroup>;
    curTabGroup?: TabGroup;
    curOption?: OptionStep;
    curConfigStep?: ConfigStep;
    private updateConfiguratorState;
    private onEvent?;
    constructor(uiState: UIState, configuratorStructureHandler: ConfiguratorStructureHandler, viewPlannerHandler: ViewPlannerHandler, productState: ProductState, settingsState: SettingsState, updateConfiguratorState: (wasNaviagtion: boolean) => void, aiState: AIState, onEvent?: ((event: Event) => void) | undefined);
    initFunctions(divaWebPlanner: DivaWebPlanner): void;
    tabGroupItems: Map<string, SVGSVGElement | HTMLDivElement | HTMLButtonElement | null>;
    setTabGroupItems(key: string, element: SVGSVGElement | HTMLDivElement | HTMLButtonElement | null): void;
    navigateToTabgroupByPosNr(posNr: number): void;
    get allTabGroups(): {
        [codex: string]: TabGroup;
    };
    get hasPlanner(): boolean;
    get currentStepIsVisible(): boolean;
    get firstVisibleConfigStep(): ConfigStep | undefined;
    filterTabgroup: undefined | string;
    setFilterTabgroup(val?: string): void;
    tabGroupScroller?: HTMLElement | null;
    setTabGroupScroller(val: HTMLElement | null): void;
    curTabGroupType: 'horizontal' | 'vertical';
    updateCurTabGroupType(): void;
    scrollToCurTabgroup: () => void;
    scrollToCurTabgroupHorizontal: () => void;
    /****Events called by navigatiion********/
    /**
     * This function is called all the time the configurator exits the planner mode
     */
    onExitPlannerMode: () => void;
    /**
     * This function is called every time the configurator enters the summary step
     * In this case the configruator has to force to load all renderings new in order to save them.
     */
    onEnterSummaryMode: () => void;
    onEnterStyleConsultantMode: () => void;
    onExitSummaryMode: () => void;
    onEnterConfiguratorMode: () => void;
    onEnterAccessoriesMode: () => void;
    onEnterShelfplannerMode: () => void;
    onExitShelfPlannerMode: () => void;
    onExitConfiguratorMode: () => void;
    onExitAccessoriesMode: () => void;
    navigatedInConfigurator: (configStepKey: string) => void;
    updateState(configuratorSturucture: Map<string, TabGroup>, curTabGroup: TabGroup, curOption: OptionStep, curConfigStep: ConfigStep): void;
}
//# sourceMappingURL=index.d.ts.map