import type { EngineResponse } from "../../EngineResponse.js"; import type { ServiceContext } from "../../ServiceContext.js"; import { PromptMixin } from "../../prompts/Mixin.js"; import type { BaseSynthesizer } from "../../synthesizers/index.js"; import type { BaseTool, QueryEngine, QueryEngineParamsNonStreaming, QueryEngineParamsStreaming, ToolMetadata } from "../../types.js"; import type { BaseQuestionGenerator } from "./types.js"; /** * SubQuestionQueryEngine decomposes a question into subquestions and then */ export declare class SubQuestionQueryEngine extends PromptMixin implements QueryEngine { responseSynthesizer: BaseSynthesizer; questionGen: BaseQuestionGenerator; queryEngines: BaseTool[]; metadatas: ToolMetadata[]; constructor(init: { questionGen: BaseQuestionGenerator; responseSynthesizer: BaseSynthesizer; queryEngineTools: BaseTool[]; }); protected _getPromptModules(): Record; static fromDefaults(init: { queryEngineTools: BaseTool[]; questionGen?: BaseQuestionGenerator; responseSynthesizer?: BaseSynthesizer; serviceContext?: ServiceContext; }): SubQuestionQueryEngine; query(params: QueryEngineParamsStreaming): Promise>; query(params: QueryEngineParamsNonStreaming): Promise; private querySubQ; }