import type { CoreEngine } from '../../../app/engine.js'; import { type Controller } from '../../controller/headless-controller.js'; import { type SearchStatusState } from '../status/headless-core-status.js'; /** * The `QuerySummary` headless controller offers a high-level interface for designing a common query summary UI controller. * * @group Controllers * @category QuerySummary * */ export interface QuerySummary extends Controller { /** The state relevant to the `CoreQuerySummary` controller.*/ state: QuerySummaryState; } /** * A scoped and simplified part of the headless state that is relevant to the `QuerySummary` controller. * * @group Controllers * @category QuerySummary * */ export interface QuerySummaryState extends SearchStatusState { /** * The duration, in milliseconds, that the last query took to execute. */ durationInMilliseconds: number; /** * The duration, in seconds, that the last query took to execute. */ durationInSeconds: number; /** * The 1-based index of the first search result returned for the current page. */ firstResult: number; /** * Determines if a query execution time is available. */ hasDuration: boolean; /** * Determines if non-empty query has been executed. */ hasQuery: boolean; /** * The 1-based index of the last search result returned for the current page. */ lastResult: number; /** * The query that was last executed (the content of the searchbox). */ query: string; /** * The total count of results available. */ total: number; } /** * Creates a `QuerySummary` controller instance. * * @param engine - The headless engine instance. * @returns A `QuerySummary` controller instance. */ export declare function buildCoreQuerySummary(engine: CoreEngine): QuerySummary;