import { AxiosRequestConfig } from 'axios';
import { ReturnTo } from '../interface/webPlannerParams/WebPlannerParamsType';
import { Configuration, LoadProductBasketParams } from '../interface/Configuration';
import { ClientEvents, PlannerStepsType } from '../interface/API/ViewConfigDataType';
import { BasketData, OrderSetData, ReportConfigData } from '@crystaldesign/basket-model';
import { PrintOptionsData, UserRole, CoreHandlers, Actions, State, LoginMode } from '../interface/CoreTypes';
import { AiImageResult, UsageLimits } from '../interface/API/AiImageResult';
import DivaSet from './Set/DivaSet';
import { WebPlannerConfigParams } from '../interface/webPlannerParams/WebPlannerParamsType';
import { ApiCache } from '../interface/API/ApiCache';
export declare class JsonDataCache implements ApiCache {
    readonly data: {
        [hash: string]: any;
    };
    set(key: string, value: any): void;
    get(key: string): any;
}
export default class DivaApiHandler {
    private divaWebConfigData?;
    private jsonDataCache;
    private returnToFromParams?;
    private organization?;
    private apiConfig?;
    private handler?;
    private applicationEnvironment?;
    private jwt?;
    private apiKey?;
    private actions?;
    private state?;
    private i18n?;
    getSessionGuid: (userRole: UserRole, loginMode?: LoginMode, organizationId?: string, api2Location?: string) => Promise<string>;
    useEkPrices: boolean;
    private smSupplierNr?;
    /**
     * Get standardized authentication headers for AI service calls
     */
    private getAiServiceAuthHeaders;
    constructor(plannerConfig: WebPlannerConfigParams, handler?: CoreHandlers, cache?: ApiCache);
    setJsonDataCache(cache: ApiCache): void;
    getJsonDataCache(): ApiCache;
    clearCache(): void;
    fetchData(url: string, init: {
        method?: 'POST' | 'GET';
        data: any;
        config: AxiosRequestConfig<any>;
    }, skip?: number, dontLogError?: boolean): Promise<any>;
    getDataWithoutCache(queryString: string, init?: {
        method?: 'POST' | 'GET';
        data: any;
        config: AxiosRequestConfig<any>;
    }, useWebServiceApi?: 'catalog' | 'basket' | 'report'): Promise<any>;
    getDataCache(queryString: string, cacheMD5?: string, accountSessionGuid?: string, useWebServiceApi?: 'catalog' | 'basket' | 'report' | 'enricher', method?: 'GET' | 'POST', data?: any, dontLogError?: boolean): Promise<any>;
    saveAsProduct(sets: {
        [setId: string]: DivaSet;
    }, basket: BasketData): Promise<any>;
    initalizeWebConfigData(plannerConfig: WebPlannerConfigParams): void;
    get useIDMService(): boolean | undefined;
    get useEnricherService(): boolean | undefined;
    get packageId(): string | undefined;
    getReportServiceUrl(): string;
    getDivaSupportServiceUrl(): string;
    getDivaMediaServiceUrl(): string;
    getDivaAiServiceUrl(): string;
    getConstructorServiceUrl(): string;
    getDivaBasketServiceUrl(): string;
    getLoadProductBasketParams(): LoadProductBasketParams | undefined;
    get3DServerUrl(): string;
    doCheckForProductsPrice(): boolean | undefined;
    doCheckForProductsMatch(): boolean | undefined;
    getReportConfigIdentifier(): string | undefined;
    getPrintOptions(reportConfig: ReportConfigData | undefined, arReady: boolean): PrintOptionsData;
    get3DRenderGroup(): string;
    getServerId(): string | undefined;
    getLanguage(): import("../interface/Configuration").Langs;
    getLanguageLowercase(): string;
    getBaseUrl(): string;
    getWWSClient(): any;
    getApplicationEnvironment(): "SELLER" | "WEB" | "WYSIWYG" | undefined;
    getDiva3dStaticBGImage(): boolean | undefined;
    getDiva3dStaticBGImage_DefaultRoomList(): string | undefined;
    getDiva3DAllowDefaultCatRoomList(): boolean | undefined;
    doAllowSetPlanner(): boolean | undefined;
    getHidePlanner(): boolean;
    getEnableRTVUnityKombi(): boolean;
    getDoDisablePlanner2D(): boolean;
    getRoomListInProduct(): boolean;
    getPlannerType(): PlannerStepsType | undefined;
    getLoadSupplierColors(): boolean;
    showSelectionModeZero(): boolean;
    ruleDescSeperator(): string;
    ruleDescWithoutParenthesis(): boolean;
    setI18n(i18n: any): void;
    setActions(actions?: Actions): void;
    setState(state?: State): void;
    getI18n(): any;
    setAccountSessionGuid({ os, accountGuid, catalogGuid }: {
        os: OrderSetData;
        accountGuid?: string;
        catalogGuid?: string;
    }): Promise<void>;
    getBasketDataUrlCacheKey(divaNr: string): string;
    getViewConfig(): import("../interface/API/ViewConfigDataType").ViewConfigData | undefined;
    getEmailConfig(): import("../interface/Configuration").EmailConfigType | undefined;
    getABTestCases(): string[];
    getTemplateConfig(): import("..").TemplateConfigType | undefined;
    showDivaNr(): boolean | undefined;
    dontLoadDimensions(): boolean | undefined;
    onErrorHandling(): {
        openComponent?: import("../interface/CoreTypes").Action;
        hideErrorMsg: boolean;
        errorMsg?: string;
    } | undefined;
    diva3DRenderingDefault(): boolean | undefined;
    getJwt(): string | undefined;
    getApiKey(): string | undefined;
    getUseMask(): boolean | undefined;
    private apiUrl;
    private langParam;
    private gaParam;
    private configVariantParam;
    getBasketDataUrl(divaNr: string): string;
    getProductUrl(productId: string): string;
    getProductByKeyValueUrl(key: string, value: string): string;
    getCatalogProductUrl(catalogCodex: string): string;
    getCatalogDataQS(catalogCodex: string): string;
    getCatalogDataCacheKey(catalogCodex: string): string;
    getJsonArticleListQS(catalogCodex: string): string;
    getJsonArticleListCacheKey(catalogCodex: string): string;
    getAdditionalModelInfosQS(accountGuid: string, catalogGuid: string, organizationId?: string): string;
    getCatalogMaskQS(catalogGuid: string, organizationId: string): string;
    getAdditionalModelInfosPostMaskQS(id: string): string;
    getJsonPlannerElementsQS(catalogCodex: string): string;
    getJsonPlannerElementsCacheKey(catalogCodex: string): string;
    getJsonArticleQS(articleCodex: string, catalogCodex: string): string;
    getJsonArticleCacheKey(articleCodex: string, catalogCodex: string): string;
    getJsonOptionTreeQS(templateCodex: string, catalogCodex: string): string;
    getJsonOptionTreeCacheKey(templateCodex: string, catalogCodex: string): string;
    getJsonArticlePricesQS(articleCodex: string, catalogCodex: string): string;
    getJsonArticlePricesCacheKey(articleCodex: string, catalogCodex: string): string;
    getApiAccountLogin(accountGuid: string): string;
    getApiAccountLoginByCatalogGuid(catalogGuid: string): string;
    getUniqueNewDivaNr(): string;
    checkMatchingProducts(): string;
    getAccountList(): string;
    getCatalogList(accountGuid: string): string;
    /******************IDM Service CALLs */
    get idmPrefix(): string;
    getIDMCatalog(catalogId: string): string;
    getIDMSerieByNo(catalogId: string, serieId?: string, serieNo?: string): string;
    getIDMItems(catalogId: string, serieId?: string, serieNo?: string, typeNos?: string[]): string;
    getIDMFeatures(catalogId: string, features: string[]): string;
    getIDMDecisions(catalogId: string, decisions: number[]): string;
    getIDMDetailInfos(catalogId: string, detailinfos: string[]): string;
    getIDMFeatureClass(catalogId: string, featureclasses: number[]): string;
    getIDMPriceFeatureGroups(catalogId: string, pricefeaturegroups: number[]): string;
    getArticleJson(artCodex: string, catalogCodex: string, accountSessionGuid: string, dontLogError?: boolean): Promise<any>;
    getJsonOptionTree(templateCodex: string, catalogCodex: string, accountSessionGuid: string): Promise<any>;
    loadArticlePricesQS(artCodex: string, catalogCodex: string, accountSessionGuid: string): Promise<any>;
    generateAiImageWithReferenceImages(data: {
        promptId: string;
        referenceImages: string[];
        additionalPrompt?: string;
        userId?: string;
        variables?: Record<string, number>;
        divaSession?: string;
        configuratorSessionId?: string;
        catalogCodex?: string;
        organizations?: {
            id: string;
            name?: string;
        }[];
    }, leadKey?: string): Promise<AiImageResult | string>;
    getUsageLimits(data?: {
        leadKey?: string;
    }): Promise<UsageLimits>;
    getAiRoomRenderings(organizationId?: string, lang?: string): Promise<any[]>;
    createLeadKey(email: string): Promise<{
        key: string;
        expiresAt: Date;
        totalRenderings: number;
        wasExisting?: boolean;
        remainingRenderings?: number;
        message: string;
    }>;
    postHQRenderScript(data: {
        divaNr: string;
        hqRenderscript: any;
        organization: string;
    }): Promise<any>;
    postPlanningInfo(planningInfo: any, divaNr: string, imgUrl: string, price: string, name: string, userId?: string, firstName?: string, lastName?: string, organizationId?: string): Promise<void>;
    getDimensionbyId(id: string, iln: string, catalogCodex: string, plannedOptions: {
        [key: string]: string;
    }): Promise<number | undefined>;
    createBasketReport(basket: BasketData, { type, ...printOptions }: any, savePdf?: boolean): Promise<any>;
    get ReturnToFromParams(): ReturnTo | undefined;
    set ReturnToFromParams(val: ReturnTo | undefined);
    get PriceType(): "EK" | "VK";
    get dontLoadAdditionalModelInfos(): boolean | undefined;
    get dontLoadCatalogEditorLiteMask(): boolean | undefined;
    get OrganizationId(): any;
    get enableAR(): any;
    get pricePreview(): 'fromBasePrice' | 'fromCurrentPrice' | 'fromCurrentPriceHideCurrent' | 'off' | undefined;
    get webConfig(): Configuration | undefined;
    eventIsManagedByClient(event: ClientEvents): boolean;
}
//# sourceMappingURL=DivaApiHandler.d.ts.map