import { Result } from '../../api/search/search/result.js';
import { InstantResultSection } from '../../state/state-sections.js';
import { StateNeededByExecuteSearch } from '../search/search-actions-thunk-processor.js';
export interface RegisterInstantResultActionCreatorPayload {
    /**
     * The search box ID.
     */
    id: string;
}
export interface UpdateInstantResultQueryActionCreatorPayload {
    /**
     * The search box ID.
     */
    id: string;
    /**
     * The initial basic query expression for instant results.
     */
    q: string;
}
export interface ClearExpiredInstantResultsActionCreatorPayload {
    /**
     * The search box id.
     */
    id: string;
}
export declare const registerInstantResults: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: RegisterInstantResultActionCreatorPayload], RegisterInstantResultActionCreatorPayload, "instantResults/register", never, never>;
export declare const updateInstantResultsQuery: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: UpdateInstantResultQueryActionCreatorPayload], UpdateInstantResultQueryActionCreatorPayload, "instantResults/updateQuery", never, never>;
export declare const clearExpiredResults: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: ClearExpiredInstantResultsActionCreatorPayload], ClearExpiredInstantResultsActionCreatorPayload, "instantResults/clearExpired", never, never>;
export interface FetchInstantResultsActionCreatorPayload {
    /**
     * The search box ID.
     */
    id: string;
    /**
     * The query for which instant results are retrieved.
     */
    q: string;
    /**
     * The maximum items to be stored in the instant result list for each query.
     */
    maxResultsPerQuery: number;
    /**
     * Number in milliseconds that cached results will be valid for. Set to 0 so that results never expire.
     */
    cacheTimeout?: number;
}
export interface FetchInstantResultsThunkReturn {
    results: Result[];
    searchUid: string;
    totalCountFiltered: number;
    duration: number;
}
export type StateNeededByInstantResults = StateNeededByExecuteSearch & InstantResultSection;
