import { MapReduceDocumentsChain, MapReduceDocumentsChainInput, RefineDocumentsChain, StuffDocumentsChain } from "../combine_docs_chain.js";
import { BasePromptTemplate } from "@langchain/core/prompts";
import { BaseLanguageModelInterface } from "@langchain/core/language_models/base";

//#region src/chains/summarization/load.d.ts
/**
 * Type for the base parameters that can be used to configure a
 * summarization chain.
 */
type BaseParams = {
  verbose?: boolean;
};
/** @interface */
type SummarizationChainParams = BaseParams & ({
  type?: "stuff";
  prompt?: BasePromptTemplate;
} | ({
  type?: "map_reduce";
  combineMapPrompt?: BasePromptTemplate;
  combinePrompt?: BasePromptTemplate;
  combineLLM?: BaseLanguageModelInterface;
} & Pick<MapReduceDocumentsChainInput, "returnIntermediateSteps">) | {
  type?: "refine";
  refinePrompt?: BasePromptTemplate;
  refineLLM?: BaseLanguageModelInterface;
  questionPrompt?: BasePromptTemplate;
});
declare const loadSummarizationChain: (llm: BaseLanguageModelInterface, params?: SummarizationChainParams) => MapReduceDocumentsChain | RefineDocumentsChain | StuffDocumentsChain;
//#endregion
export { SummarizationChainParams, loadSummarizationChain };
//# sourceMappingURL=load.d.ts.map