import { type SchemaDefinition } from '@coveo/bueno';
import type { Result } from '../../api/search/search/result.js';
import type { ConfigurationSection, FoldingSection, QuerySection } from '../../state/state-sections.js';
import type { ResultWithFolding } from './folding-slice.js';
import type { CollectionId } from './folding-state.js';
export interface RegisterFoldingActionCreatorPayload {
    /**
     * The name of the field on which to do the folding. The folded result list component will use the values of this field to resolve the collections of result items.
     *
     * @defaultValue `foldingcollection`
     */
    collectionField?: string;
    /**
     * The name of the field that determines whether a certain result is a top result containing other child results within a collection.
     *
     * @defaultValue `foldingparent`
     */
    parentField?: string;
    /**
     * The name of the field that uniquely identifies a result within a collection.
     *
     * @defaultValue `foldingchild`
     */
    childField?: string;
    /**
     * The number of child results to fold under the root collection element, before expansion.
     *
     * @defaultValue `2`
     */
    numberOfFoldedResults?: number;
}
export interface LoadCollectionFulfilledReturn {
    results: Result[];
    collectionId: CollectionId;
    rootResult: ResultWithFolding;
    searchUid: string;
}
export declare const foldingOptionsSchemaDefinition: SchemaDefinition<Required<RegisterFoldingActionCreatorPayload>>;
export declare const registerFolding: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: RegisterFoldingActionCreatorPayload], RegisterFoldingActionCreatorPayload, "folding/register", never, never>;
export type StateNeededByLoadCollection = ConfigurationSection & FoldingSection & QuerySection;
export declare const loadCollection: import("@reduxjs/toolkit").AsyncThunk<LoadCollectionFulfilledReturn, string, {
    rejectValue: import("../../api/search/search-api-error-response.js").SearchAPIErrorWithStatusCode;
    state: StateNeededByLoadCollection;
    extra: import("../../app/thunk-extra-arguments.js").ClientThunkExtraArguments<import("../../api/search/search-api-client.js").SearchAPIClient, import("../../api/generated-answer/generated-answer-client.js").GeneratedAnswerAPIClient>;
    dispatch?: import("redux-thunk").ThunkDispatch<unknown, unknown, import("redux").UnknownAction> | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
