import { type CommerceEngine, type Context } from '@coveo/headless/commerce';
import type { CurrencyCodeISO4217 } from '@coveo/relay-event-types';
import { type i18n } from 'i18next';
import { type CSSResultGroup, LitElement } from 'lit';
import type { CommonBindings } from '../../common/interface/bindings.js';
import { type BaseAtomicInterface } from '../../common/interface/interface-controller.js';
import { type CommerceRecommendationStore } from './store.js';
export type CommerceBindings = CommonBindings<CommerceEngine, CommerceRecommendationStore, AtomicCommerceRecommendationInterface>;
declare const AtomicCommerceRecommendationInterface_base: typeof LitElement;
/**
 * The `atomic-commerce-recommendation-interface` component is meant to be used
 * as the parent of one or more `atomic-commerce-recommendation-list`
 * components. It handles the headless engine and localization
 * configurations.
 *
 * @slot default - The default slot where you can add child components to the interface.
 */
export declare class AtomicCommerceRecommendationInterface extends AtomicCommerceRecommendationInterface_base implements BaseAtomicInterface<CommerceEngine> {
    bindings: CommerceBindings;
    error: Error;
    context: Context;
    private store;
    private interfaceController;
    static styles: CSSResultGroup;
    /**
     * The commerce interface i18next instance.
     */
    i18n: i18n;
    /**
     * The commerce interface headless engine.
     */
    engine?: CommerceEngine;
    /**
     * The CSS selector for the container the interface will scroll back to.
     */
    scrollContainer: string;
    /**
     * The language assets path. By default, this will be a relative URL pointing to `./lang`.
     *
     * Example: "/mypublicpath/languages"
     *
     */
    languageAssetsPath: string;
    /**
     * The icon assets path. By default, this will be a relative URL pointing to `./assets`.
     *
     * Example: "/mypublicpath/icons"
     *
     */
    iconAssetsPath: string;
    /**
     * The commerce interface language.
     *
     * Will default to the value set in the Headless engine context if not
     * provided.
     *
     * @deprecated - This property will be removed in the next major version of
     * Atomic (v4). Rather than using this property, set the initial language
     * through the engine configuration when calling `initializeWithEngine`, and
     * update the language as needed using the `updateLocale` method.
     */
    language?: string;
    /**
     * Whether to enable analytics.
     */
    analytics: boolean;
    private i18Initialized;
    constructor();
    connectedCallback(): void;
    /**
     * Initializes the connection with an already preconfigured [headless commerce engine](https://docs.coveo.com/en/headless/latest/reference/interfaces/Commerce.CommerceEngine.html).
     */
    initializeWithEngine(engine: CommerceEngine): Promise<void>;
    /**
     * Updates the locale settings for the commerce recommendation interface and
     * headless commerce engine. Only the provided parameters will be updated.
     *
     * Calling this method affects the localization of the interface as well as
     * the catalog configuration being used by the Commerce API. If the resulting
     * language-country-currency combination matches no existing catalog
     * configuration in your Coveo organization, requests made through the
     * commerce engine will start failing.
     *
     * @param language - (Optional) The IETF language code tag (for example, `en`).
     * @param country - (Optional) The ISO-3166-1 country tag (for example, `US`).
     * @param currency - (Optional) The ISO-4217 currency code (for example, `USD`).
     *
     * @example
     * ```typescript
     * recommendationInterface.updateLocale('fr', 'CA', 'CAD');
     * ```
     */
    updateLocale(language?: string, country?: string, currency?: CurrencyCodeISO4217): void;
    toggleAnalytics(): void;
    updateIconAssetsPath(): void;
    updateLanguage(): Promise<void>;
    disconnectedCallback(): void;
    render(): import("lit-html").TemplateResult<1>;
    private handleInitialization;
    private scrollToTop;
    private internalInitialization;
    private initContext;
    private getBindings;
    private initLanguage;
    private isNewLocale;
}
declare global {
    interface HTMLElementTagNameMap {
        'atomic-commerce-recommendation-interface': AtomicCommerceRecommendationInterface;
    }
}
export {};
