import type { StateFromReducersMapObject } from '@reduxjs/toolkit';
import type { CaseAssistAppState } from '../../state/case-assist-app-state.js';
import type { CaseAssistThunkExtraArguments } from '../case-assist-thunk-extra-arguments.js';
import { type CoreEngine, type ExternalEngineOptions } from '../engine.js';
import { type CaseAssistEngineConfiguration } from './case-assist-engine-configuration.js';
export type { CaseAssistEngineConfiguration };
declare const caseassistEngineReducers: {
    debug: import("redux").Reducer<boolean> & {
        getInitialState: () => boolean;
    };
    caseAssistConfiguration: import("redux").Reducer<import("../../features/case-assist-configuration/case-assist-configuration-state.js").CaseAssistConfigurationState> & {
        getInitialState: () => import("../../features/case-assist-configuration/case-assist-configuration-state.js").CaseAssistConfigurationState;
    };
    searchHub: import("redux").Reducer<string> & {
        getInitialState: () => string;
    };
};
type CaseAssistEngineReducers = typeof caseassistEngineReducers;
type CaseAssistEngineState = StateFromReducersMapObject<CaseAssistEngineReducers> & Partial<CaseAssistAppState>;
/**
 * The engine for powering case assist experiences.
 *
 * For example implementations, see the following [Coveo Quantic Case Assist components](https://docs.coveo.com/en/quantic/latest/reference/case-assist-components/):
 * * [quanticCaseClassification.js](https://github.com/coveo/ui-kit/blob/main/packages/quantic/force-app/main/default/lwc/quanticCaseClassification/quanticCaseClassification.js)
 * * [quanticDocumentSuggestion](https://github.com/coveo/ui-kit/blob/main/packages/quantic/force-app/main/default/lwc/quanticDocumentSuggestion/quanticDocumentSuggestion.js)
 *
 * @group Engine
 */
export interface CaseAssistEngine<State extends object = {}> extends CoreEngine<State & CaseAssistEngineState, CaseAssistThunkExtraArguments> {
}
/**
 * The case assist engine options.
 *
 * @group Engine
 */
export interface CaseAssistEngineOptions extends ExternalEngineOptions<CaseAssistEngineState> {
    /**
     * The case assist engine configuration options.
     */
    configuration: CaseAssistEngineConfiguration;
}
/**
 * Creates a case assist engine instance.
 *
 * @param options - The case assist engine options.
 * @returns A case assist engine instance.
 *
 * @group Engine
 */
export declare function buildCaseAssistEngine(options: CaseAssistEngineOptions): CaseAssistEngine;
