import { type ResultList as InsightResultList, type ResultsPerPage as InsightResultsPerPage } from '@coveo/headless/insight';
import { type CSSResultGroup, LitElement } from 'lit';
import { type ItemRenderingFunction } from '../../common/item-list/item-list-common';
import { type ItemDisplayDensity, type ItemDisplayImageSize } from '../../common/layout/item-layout-utils';
import type { InsightBindings } from '../atomic-insight-interface/atomic-insight-interface';
import type { InitializableComponent } from '../../../decorators/types';
import '../atomic-insight-result/atomic-insight-result';
import '../atomic-insight-result-template/atomic-insight-result-template';
declare const AtomicInsightResultList_base: typeof LitElement;
/**
 * The `atomic-insight-result-list` component is responsible for displaying insight query results by applying one or more result templates.
 *
 * @slot default - The default slot where the result templates are inserted.
 * @part result-list - The element containing every result of a result list
 * @part outline - The element displaying an outline or a divider around a result
 */
export declare class AtomicInsightResultList extends AtomicInsightResultList_base implements InitializableComponent<InsightBindings> {
    static styles: CSSResultGroup;
    private static readonly propsSchema;
    resultList: InsightResultList;
    resultsPerPage: InsightResultsPerPage;
    private itemRenderingFunction;
    private loadingFlag;
    private nextNewResultTarget?;
    private resultListCommon;
    private resultTemplateProvider;
    private readonly display;
    bindings: InsightBindings;
    error: Error;
    private isAppLoaded;
    private isEveryResultReady;
    private resultTemplateRegistered;
    private templateHasError;
    private resultListState;
    private resultsPerPageState;
    /**
     * The spacing of various elements in the result list, including the gap between results, the gap between parts of a result, and the font sizes of different parts in a result.
     */
    density: ItemDisplayDensity;
    /**
     * The expected size of the image displayed in the results.
     */
    imageSize: ItemDisplayImageSize;
    constructor();
    /**
     * Sets a rendering function to bypass the standard HTML template mechanism for rendering results.
     * You can use this function while working with web frameworks that don't use plain HTML syntax such as React, Angular, or Vue.
     *
     * Do not use this method if you integrate Atomic in a plain HTML deployment.
     *
     * @param resultRenderingFunction
     */
    setRenderFunction(resultRenderingFunction: ItemRenderingFunction): Promise<void>;
    initialize(): void;
    willUpdate(changedProperties: Map<string, unknown>): Promise<void>;
    private get shouldMarkResultsAsReady();
    private updateResultReadyState;
    render(): import("lit-html").TemplateResult<1>;
    private initResultTemplateProvider;
    private initResultListCommon;
    private computeListDisplayClasses;
    private renderList;
    private get focusTarget();
    private getInteractiveResult;
    private getResultId;
}
declare global {
    interface HTMLElementTagNameMap {
        'atomic-insight-result-list': AtomicInsightResultList;
    }
}
export {};
