import type { AtomicRecsList } from '@coveo/atomic/components';
import type { Result } from '@coveo/headless/recommendation';
import React, { type JSX } from 'react';
interface Template {
    contentTemplate: JSX.Element;
    linkTemplate: JSX.Element;
}
interface AtomicRecsListProps {
    /**
     * 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?: AtomicRecsList['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?: AtomicRecsList['display'];
    /**
     * The expected size of the image displayed for results.
     */
    imageSize?: AtomicRecsList['imageSize'];
    /**
     * The total number of recommendations to display.
     */
    numberOfRecommendations?: AtomicRecsList['numberOfRecommendations'];
    /**
     * The number of recommendations to display per page when using the carousel layout.
     */
    numberOfRecommendationsPerPage?: AtomicRecsList['numberOfRecommendationsPerPage'];
    /**
     * The non-localized label for the list of recommendations.
     */
    label?: AtomicRecsList['label'];
    /**
     * The heading level to use for the label, from 1 to 6.
     */
    headingLevel?: AtomicRecsList['headingLevel'];
}
/**
 * The properties of the AtomicRecsList component
 */
interface WrapperProps extends AtomicRecsListProps {
    /**
     * 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 AtomicRecsList.
 *
 * @param props
 * @returns
 */
export declare const RecsListWrapper: React.FC<WrapperProps>;
export {};
