import type { Result } from '../../api/search/search/result.js';
import type { SearchEngine } from '../../app/search-engine/search-engine.js';
import { type Controller } from '../controller/headless-controller.js';
export interface RecentResultsListProps {
    /**
     * The initial state that should be applied to the `RecentResultsList` controller.
     */
    initialState?: RecentResultsListInitialState;
    /**
     * The configuration options that should be applied to the `RecentResultsList` controller.
     */
    options?: RecentResultsListOptions;
}
export interface RecentResultsListInitialState {
    /**
     * The list of recent results.
     * @defaultValue `[]`
     */
    results: Result[];
}
export interface RecentResultsListOptions {
    /**
     * The maximum number of results to retain in the list.
     * @defaultValue `10`
     */
    maxLength: number;
}
/**
 * The `RecentResultsList` controller manages a user's recently clicked results.
 *
 * Example: [recent-results.fn.tsx](https://github.com/coveo/ui-kit/blob/main/packages/samples/headless-react/src/components/recent-results/recent-results.fn.tsx)
 *
 * @group Controllers
 * @category RecentResultsList
 */
export interface RecentResultsList extends Controller {
    /**
     * The state of the RecentResultsList controller.
     * */
    state: RecentResultsState;
    /**
     * Clears the recent results list.
     */
    clear(): void;
}
/**
 * A scoped and simplified part of the headless state that is relevant to the `RecentResultsList` controller.
 *
 * @group Controllers
 * @category RecentResultsList
 * */
export interface RecentResultsState {
    /**
     * The list of recent results.
     */
    results: Result[];
    /**
     * The maximum number of results to retain in the list.
     */
    maxLength: number;
}
/**
 * Creates a `RecentResultsList` controller instance.
 *
 * @param engine - The headless engine.
 * @param props - The configuration `RecentResultsList` properties.
 * @returns A `RecentResultsList` controller instance.
 *
 * @group Controllers
 * @category RecentResultsList
 * */
export declare function buildRecentResultsList(engine: SearchEngine, props?: RecentResultsListProps): RecentResultsList;
