import type { GeneratedAnswerStreamRequest } from '../../api/generated-answer/generated-answer-request.js';
import type { StreamAnswerAPIState } from '../../api/knowledge/stream-answer-api-state.js';
import type { BaseParam } from '../../api/platform-service-params.js';
import type { SearchRequest } from '../../api/search/search/search-request.js';
import type { AnalyticsParam, AuthenticationParam, AutomaticFacetsParams, PipelineRuleParameters } from '../../api/search/search-api-params.js';
import type { CaseContextParam } from '../../api/service/insight/query/query-request.js';
import type { NavigatorContext } from '../../app/navigator-context-provider.js';
import type { SearchAppState } from '../../state/search-app-state.js';
import type { ConfigurationSection, GeneratedAnswerSection, SearchSection, TabSection } from '../../state/state-sections.js';
import type { AnyFacetRequest } from '../facets/generic/interfaces/generic-facet-request.js';
type StateNeededByGeneratedAnswerStream = ConfigurationSection & SearchSection & GeneratedAnswerSection;
export interface AnswerApiQueryParams extends Omit<SearchRequest, keyof (BaseParam & AuthenticationParam & AutomaticFacetsParams)>, CaseContextParam {
}
export declare const buildStreamingRequest: (state: StateNeededByGeneratedAnswerStream) => Promise<GeneratedAnswerStreamRequest>;
export declare const constructAnswerAPIQueryParams: (state: StreamAnswerAPIState, navigatorContext: NavigatorContext) => AnswerApiQueryParams;
export type StateNeededForHeadAnswerParams = ConfigurationSection & Partial<SearchAppState> & GeneratedAnswerSection & Partial<TabSection>;
/**
 * Parameters for answer generation requests.
 */
type AnswerParams = {
    q: string;
    facets?: AnyFacetRequest[];
    searchHub?: string;
    pipeline?: string;
    pipelineRuleParameters: PipelineRuleParameters;
    locale: string;
} & AnalyticsParam;
export declare const constructGenerateHeadAnswerParams: (state: StateNeededForHeadAnswerParams, navigatorContext: NavigatorContext) => AnswerParams;
export {};
