import type { AtomicResultList } from '@coveo/atomic/components';
import type { Result } from '@coveo/headless';
import React, { type JSX } from 'react';
interface Template {
    contentTemplate: JSX.Element;
    linkTemplate: JSX.Element;
}
interface AtomicResultListProps {
    /**
     * 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?: AtomicResultList['density'];
    /**
     * The desired layout to use when displaying results. Layouts affect how many results to display per row and how visually distinct they are from each other.
     */
    display?: AtomicResultList['display'];
    /**
     * The expected size of the image displayed for results.
     */
    imageSize?: AtomicResultList['imageSize'];
    /**
     * The desired number of placeholders to display while the result list is loading.
     */
    numberOfPlaceholders?: number;
}
/**
 * The properties of the AtomicResultList component
 */
interface WrapperProps extends AtomicResultListProps {
    /**
     * A template function that takes a result item and outputs its target rendering as a JSX element.
     * It can be used to conditionally render different type of result templates based on the properties of each result.
     */
    template: (result: Result) => JSX.Element | Template;
}
/**
 * This component serves as a wrapper for the core AtomicResultList.
 *
 * @param props
 * @returns
 */
export declare const ResultListWrapper: React.FC<WrapperProps>;
export {};
