import { type InsightEngine, type InsightEngineConfiguration, type LogLevel as InsightLogLevel } from '@coveo/headless/insight';
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 InsightStore } from './store.js';
type InsightInitializationOptions = InsightEngineConfiguration;
export type InsightBindings = CommonBindings<InsightEngine, InsightStore, AtomicInsightInterface>;
declare const AtomicInsightInterface_base: typeof LitElement;
/**
 * The `atomic-insight-interface` component is the parent to all other atomic insight components in an insight page.
 * It handles the headless insight engine and localization configurations.
 *
 * @slot default - The default slot where you can add child components to the interface.
 * @slot full-search - A slot for components that should be positioned absolutely in the top-right corner.
 */
export declare class AtomicInsightInterface extends AtomicInsightInterface_base implements BaseAtomicInterface<InsightEngine> {
    bindings: InsightBindings;
    error: Error;
    private initialized;
    private interfaceController;
    store: InsightStore;
    static styles: CSSResultGroup;
    /**
     * The service insight interface headless engine.
     */
    engine?: InsightEngine;
    /**
     * Whether analytics should be enabled.
     */
    analytics: boolean;
    /**
     * The service insight interface i18next instance.
     */
    i18n: i18n;
    /**
     * The severity level of the messages to log in the console.
     */
    logLevel?: InsightLogLevel;
    /**
     * The service insight interface language.
     */
    language: 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;
    /**
     * 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-insight-interface fields-to-include='["fieldA", "fieldB"]'></atomic-insight-interface>
     * ```
     */
    fieldsToInclude: string[];
    /**
     * The number of results per page. By default, this is set to `5`.
     */
    resultsPerPage: number;
    private i18Initialized;
    constructor();
    connectedCallback(): void;
    /**
     * Initializes the connection with the headless insight engine using options for `accessToken` (required), `organizationId` (required), `environment` (defaults to `prod`), and `renewAccessToken`.
     */
    initialize(options: InsightInitializationOptions): Promise<void>;
    /**
     * Initializes the connection with an already preconfigured headless insight engine.
     */
    initializeWithInsightEngine(engine: InsightEngine): 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>;
    toggleAnalytics(): void;
    updateIconAssetsPath(): void;
    updateLanguage(): void;
    disconnectedCallback(): void;
    render(): import("lit-html").TemplateResult<1>;
    private getBindings;
    private handleInitialization;
    private initEngine;
    private initResultsPerPage;
    private internalInitialization;
    registerFieldsToInclude(): void;
}
declare global {
    interface HTMLElementTagNameMap {
        'atomic-insight-interface': AtomicInsightInterface;
    }
}
export {};
