import { type LogLevel, type SearchEngine, type SearchEngineConfiguration, type SearchStatus, type UrlManager } from '@coveo/headless';
import { type i18n } from 'i18next';
import { type CSSResultGroup, LitElement } from 'lit';
import type { CommonBindings, NonceBindings } from '../../common/interface/bindings';
import { type BaseAtomicInterface } from '../../common/interface/interface-controller';
import '../atomic-relevance-inspector/atomic-relevance-inspector';
import { type SearchStore } from './store';
type InitializationOptions = SearchEngineConfiguration;
export type Bindings = CommonBindings<SearchEngine, SearchStore, AtomicSearchInterface> & NonceBindings;
declare const AtomicSearchInterface_base: typeof LitElement;
/**
 * The `atomic-search-interface` component is the parent to all other atomic components in a search page. It handles the headless search engine and localization configurations.
 *
 * @slot default - The default slot where you can add child components to the interface.
 */
export declare class AtomicSearchInterface extends AtomicSearchInterface_base implements BaseAtomicInterface<SearchEngine> {
    bindings: Bindings;
    error: Error;
    urlManager: UrlManager;
    searchStatus: SearchStatus;
    private unsubscribeUrlManager;
    private unsubscribeSearchStatus;
    private initialized;
    private store;
    private i18Initialized;
    private interfaceController;
    private relevanceInspector?;
    static styles: CSSResultGroup;
    /**
     * A list of non-default fields to include in the query results.
     *
     * Specify the property as an array using a JSON string representation:
     * ```html
     * <atomic-search-interface fields-to-include='["fieldA", "fieldB"]'></atomic-search-interface>
     * ```
     */
    fieldsToInclude: string[];
    /**
     * The search interface [query pipeline](https://docs.coveo.com/en/180/).
     *
     * If the search interface is initialized using [`initializeWithSearchEngine`](https://docs.coveo.com/en/atomic/latest/reference/components/atomic-search-interface/#initializewithsearchengine), the query pipeline should instead be configured in the target engine.
     */
    pipeline?: string;
    /**
     * The search interface [search hub](https://docs.coveo.com/en/1342/).
     *
     * If the search interface is initialized using [`initializeWithSearchEngine`](https://docs.coveo.com/en/atomic/latest/reference/components/atomic-search-interface/#initializewithsearchengine, the search hub should instead be configured in the target engine.
     */
    searchHub?: string;
    /**
     * Whether analytics should be enabled.
     */
    analytics: boolean;
    /**
     * The [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) identifier of the time zone to use to correctly interpret dates in the query expression, facets, and result items.
     * By default, the timezone will be [guessed](https://day.js.org/docs/en/timezone/guessing-user-timezone).
     *
     * Example: "America/Montreal"
     */
    timezone?: string;
    /**
     * 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 search interface i18next instance.
     */
    i18n: i18n;
    /**
     * The search interface language.
     */
    language: string;
    /**
     * The search interface headless engine.
     */
    engine?: SearchEngine;
    /**
     * 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;
    /**
     * Whether the relevance inspector shortcut should be enabled for this interface.
     *
     * The relevance inspector can be opened by holding the Alt key (Option on Mac) while over the interface, and performing a double-click.
     *
     * The relevance inspector allows to troubleshoot and debug queries.
     * @deprecated - replaced by `disable-relevance-inspector` (this defaults to `true`, while the replacement defaults to `false`).
     */
    enableRelevanceInspector: boolean;
    /**
     * Whether to disable the relevance inspector shortcut for this interface.
     */
    disableRelevanceInspector: boolean;
    constructor();
    connectedCallback(): void;
    willUpdate(changedProperties: Map<string, unknown>): void;
    disconnectedCallback(): void;
    scrollToTop(): void;
    /**
     * @deprecated provided for backward compatibility. set the 'open' property directly on the relevance inspector instead.
     */
    closeRelevanceInspector(): void;
    /**
     * Initializes the connection with the headless search engine using options for `accessToken` (required), `organizationId` (required), `environment` (defaults to `prod`), and `renewAccessToken`.
     */
    initialize(options: InitializationOptions): Promise<void>;
    /**
     * Initializes the interface using the provided [headless search engine](https://docs.coveo.com/en/headless/latest/reference/modules/Search.html, as opposed to the `initialize` method which internally builds a search engine instance.
     * This bypasses the properties set on the component, such as analytics, searchHub, pipeline, language, timezone, and logLevel.
     */
    initializeWithSearchEngine(engine: SearchEngine): Promise<void>;
    /**
     *
     * Executes the first search and logs the interface load event to analytics, after initializing connection to the headless search engine.
     */
    executeFirstSearch(): Promise<void>;
    updateSearchConfiguration(updatedProp: 'searchHub' | 'pipeline', newValue: string | undefined): void;
    registerFieldsToInclude(): void;
    updateSearchHub(): void;
    updatePipeline(): void;
    toggleAnalytics(): void;
    updateLanguage(): void;
    updateIconAssetsPath(): void;
    render(): import("lit-html").TemplateResult<1>;
    private handleInitialization;
    private getBindings;
    private initFieldsToInclude;
    private updateFieldsToInclude;
    private initEngine;
    private getSearchConfiguration;
    private get fragment();
    private initUrlManager;
    private internalInitialization;
    private initSearchStatus;
    private updateHash;
    private onHashChange;
}
declare global {
    interface HTMLElementTagNameMap {
        'atomic-search-interface': AtomicSearchInterface;
    }
}
export {};
