import { BaseLLM } from "../llms/base.js"; import { SerializedChatVectorDBQAChain } from "./serde.js"; import { ChainValues, BaseRetriever } from "../schema/index.js"; import { BaseChain, ChainInputs } from "./base.js"; import { LLMChain } from "./llm_chain.js"; import { CallbackManagerForChainRun } from "../callbacks/manager.js"; export type LoadValues = Record; export interface ConversationalRetrievalQAChainInput extends Omit { retriever: BaseRetriever; combineDocumentsChain: BaseChain; questionGeneratorChain: LLMChain; returnSourceDocuments?: boolean; inputKey?: string; } export declare class ConversationalRetrievalQAChain extends BaseChain implements ConversationalRetrievalQAChainInput { inputKey: string; chatHistoryKey: string; get inputKeys(): string[]; get outputKeys(): string[]; retriever: BaseRetriever; combineDocumentsChain: BaseChain; questionGeneratorChain: LLMChain; returnSourceDocuments: boolean; constructor(fields: ConversationalRetrievalQAChainInput); /** @ignore */ _call(values: ChainValues, runManager?: CallbackManagerForChainRun): Promise; _chainType(): string; static deserialize(_data: SerializedChatVectorDBQAChain, _values: LoadValues): Promise; serialize(): SerializedChatVectorDBQAChain; static fromLLM(llm: BaseLLM, retriever: BaseRetriever, options?: { inputKey?: string; outputKey?: string; returnSourceDocuments?: boolean; questionGeneratorTemplate?: string; qaTemplate?: string; }): ConversationalRetrievalQAChain; }