import { Unsubscribe } from '@reduxjs/toolkit';
import { GeneratedAnswerAPIClient } from '../../../api/generated-answer/generated-answer-client.js';
import { CoreEngine } from '../../../app/engine.js';
import { InsightEngine } from '../../../app/insight-engine/insight-engine.js';
import { SearchEngine } from '../../../app/search-engine/search-engine.js';
import { ClientThunkExtraArguments } from '../../../app/thunk-extra-arguments.js';
import { ConfigurationState } from '../../../features/configuration/configuration-state.js';
import { DebugSection, GeneratedAnswerSection, SearchSection } from '../../../state/state-sections.js';
import { GeneratedAnswer, GeneratedAnswerAnalyticsClient, GeneratedAnswerProps } from './headless-core-generated-answer.js';
export interface SearchAPIGeneratedAnswer extends GeneratedAnswer {
}
export interface SearchAPIGeneratedAnswerProps extends GeneratedAnswerProps {
}
interface SubscribeStateManager {
    engines: Record<string, {
        abortController: AbortController | undefined;
        lastRequestId: string;
        lastStreamId: string;
    }>;
    getIsStreamInProgress: (genQaEngineId: string) => boolean;
    setAbortControllerRef: (ref: AbortController, genQaEngineId: string) => void;
    subscribeToSearchRequests: (engine: CoreEngine<GeneratedAnswerSection & SearchSection & DebugSection, ClientThunkExtraArguments<GeneratedAnswerAPIClient>, ConfigurationState>) => Unsubscribe;
}
export declare const subscribeStateManager: SubscribeStateManager;
export interface SearchAPIGeneratedAnswerAnalyticsClient extends GeneratedAnswerAnalyticsClient {
}
/**
 * Creates a `GeneratedAnswer` controller instance using the search API stream pattern.
 *
 * @param engine - The headless engine.
 * @param props - The configurable `GeneratedAnswer` properties.
 * @returns A `GeneratedAnswer` controller instance.
 */
export declare function buildSearchAPIGeneratedAnswer(engine: SearchEngine | InsightEngine, analyticsClient: SearchAPIGeneratedAnswerAnalyticsClient, props?: GeneratedAnswerProps): SearchAPIGeneratedAnswer;
export {};
