import { CoreEngine } from '../../../app/engine.js';
import { Controller } from '../../controller/headless-controller.js';
import { 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;
