import { type CommerceEngine, type CommerceEngineConfiguration, type Context, type LogLevel, type ProductListing, type ProductListingSummaryState, type Search, type SearchSummaryState, type Summary, type UrlManager } 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';
import { type BaseAtomicInterface } from '../../common/interface/interface-controller';
import { type CommerceStore } from './store';
type CommerceInitializationOptions = CommerceEngineConfiguration;
export type CommerceBindings = CommonBindings<CommerceEngine, CommerceStore, AtomicCommerceInterface>;
declare const AtomicCommerceInterface_base: typeof LitElement;
/**
 * The `atomic-commerce-interface` component is the parent to all other atomic commerce components in a commerce page
 * (except for `atomic-commerce-recommendation-list`, which must have
 * `atomic-commerce-recommendation-interface` as a parent). It handles the headless commerce engine and localization
 * configurations.
 *
 * @slot default - The default slot where you can add child components to the interface.
 */
export declare class AtomicCommerceInterface extends AtomicCommerceInterface_base implements BaseAtomicInterface<CommerceEngine> {
    bindings: CommerceBindings;
    error: Error;
    context: Context;
    summary: Summary<SearchSummaryState | ProductListingSummaryState>;
    urlManager: UrlManager;
    searchOrListing: Search | ProductListing;
    private unsubscribeUrlManager;
    private unsubscribeSummary;
    private initialized;
    private store;
    private i18Initialized;
    private interfaceController;
    static styles: CSSResultGroup;
    /**
     * The type of the interface.
     * - 'search': Indicates that the interface is used for Search.
     * - 'product-listing': Indicates that the interface is used for Product listing.
     */
    type: 'search' | 'product-listing';
    /**
     * Whether analytics should be enabled.
     */
    analytics: boolean;
    /**
     * The minimum severity level of messages to log in the console.
     * Messages with a severity level below this threshold will not be logged.
     * Possible values are `trace`, `debug`, `info`, `warn`, `error`, `fatal`, or `silent`.
     */
    logLevel?: LogLevel;
    /**
     * The commerce interface i18next instance.
     */
    i18n: i18n;
    /**
     * 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;
    /**
     * The commerce interface headless engine.
     */
    engine?: CommerceEngine;
    /**
     * Whether the state should be reflected in the URL parameters.
     * @deprecated - replaced by `disable-state-reflection-in-url` (this defaults to `true`, while the replacement defaults to `false`).
     */
    reflectStateInUrl: boolean;
    /**
     * Whether to disable state reflection in the URL parameters.
     */
    disableStateReflectionInUrl: boolean;
    /**
     * The CSS selector for the container where 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;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    /**
     * Initializes the connection with the headless commerce engine using the specified options.
     */
    initialize(options: CommerceInitializationOptions): Promise<void>;
    /**
     * Initializes the connection with a preconfigured [headless commerce engine](https://docs.coveo.com/en/headless/latest/reference/interfaces/Commerce.CommerceEngine.html), as opposed to the `initialize` method, which internally creates a new commerce engine instance.
     * This bypasses the properties set on the component, such as analytics and language.
     */
    initializeWithEngine(engine: CommerceEngine): Promise<void>;
    /**
     *
     * Executes the first request after initializing connection to the headless commerce engine.
     */
    executeFirstRequest(): Promise<void>;
    /**
     * Updates the locale settings for the commerce 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
     * interface.updateLocale('fr', 'CA', 'CAD');
     * ```
     */
    updateLocale(language?: string, country?: string, currency?: CurrencyCodeISO4217): void;
    toggleAnalytics(): void;
    updateLanguage(): void;
    updateIconAssetsPath(): void;
    render(): import("lit-html").TemplateResult<1>;
    private handleInitialization;
    private getBindings;
    private initEngine;
    private get fragment();
    private initContext;
    private initLanguage;
    private initRequestStatus;
    private initSummary;
    private initUrlManager;
    private internalInitialization;
    private isNewLocale;
    private onHashChange;
    scrollToTop(): void;
    private updateHash;
}
declare global {
    interface HTMLElementTagNameMap {
        'atomic-commerce-interface': AtomicCommerceInterface;
    }
}
export {};
