deepsearcher
Version:
DeepResearch Agent with LangGraph, use any llm and web search to build your own deep research agent
400 lines (394 loc) • 26.6 kB
TypeScript
import * as zod_v4_core from 'zod/v4/core';
import * as zod from 'zod';
import { z } from 'zod';
import * as _langchain_langgraph from '@langchain/langgraph';
import * as _langchain_core_messages from '@langchain/core/messages';
import { ClientOptions } from '@langchain/openai';
export { AIMessage, BaseMessage, HumanMessage, SystemMessage } from 'langchain';
declare const ResearchState: _langchain_langgraph.AnnotationRoot<{
query: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
id: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
loopIndex: {
(): _langchain_langgraph.LastValue<number>;
(annotation: _langchain_langgraph.SingleReducer<number, number>): _langchain_langgraph.BinaryOperatorAggregate<number, number>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}>;
interface SearchResultItem {
id: string | number;
title: string;
content: string;
source?: string;
url?: string;
date?: string;
score?: number;
}
type SearcherFunction = (input: typeof ResearchState.State) => Promise<SearchResultItem[]>;
declare enum NodeEnum {
GenerateQuery = "generate_query",
Research = "research",
Reflection = "reflection",
FinalizeAnswer = "finalize_answer"
}
declare enum EventStreamEnum {
ChatModelStart = "on_chat_model_start",
ChatModelStream = "on_chat_model_stream",
ChatModelEnd = "on_chat_model_end"
}
interface DeepResearchOptions extends ClientOptions {
type?: 'openai' | 'anthropic' | 'gemini' | 'vertexai';
systemPrompt?: string;
temperature?: number;
enableCitationUrl?: boolean;
}
declare class DeepResearch {
private readonly options?;
private readonly searcher;
constructor({ searcher, options, }: {
searcher: SearcherFunction;
options?: DeepResearchOptions;
});
compile(): Promise<_langchain_langgraph.CompiledStateGraph<{
messages: _langchain_core_messages.BaseMessageLike[];
rationale: string;
generatedQueries: string[];
searchedQueries: string[];
researchResult: string[];
sourcesGathered: SearchResultItem[];
researchLoopCount: number;
reflectionState: _langchain_langgraph.StateType<{
isSufficient: {
(): _langchain_langgraph.LastValue<boolean>;
(annotation: _langchain_langgraph.SingleReducer<boolean, boolean>): _langchain_langgraph.BinaryOperatorAggregate<boolean, boolean>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
knowledgeGap: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
followUpQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
numberOfRanQueries: {
(): _langchain_langgraph.LastValue<number>;
(annotation: _langchain_langgraph.SingleReducer<number, number>): _langchain_langgraph.BinaryOperatorAggregate<number, number>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}>;
}, {
messages?: _langchain_core_messages.BaseMessageLike[] | undefined;
rationale?: string | undefined;
generatedQueries?: string[] | undefined;
searchedQueries?: string[] | undefined;
researchResult?: string[] | undefined;
sourcesGathered?: SearchResultItem[] | undefined;
researchLoopCount?: number | undefined;
reflectionState?: _langchain_langgraph.StateType<{
isSufficient: {
(): _langchain_langgraph.LastValue<boolean>;
(annotation: _langchain_langgraph.SingleReducer<boolean, boolean>): _langchain_langgraph.BinaryOperatorAggregate<boolean, boolean>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
knowledgeGap: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
followUpQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
numberOfRanQueries: {
(): _langchain_langgraph.LastValue<number>;
(annotation: _langchain_langgraph.SingleReducer<number, number>): _langchain_langgraph.BinaryOperatorAggregate<number, number>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}> | undefined;
}, "__start__", {
messages: _langchain_langgraph.BinaryOperatorAggregate<_langchain_core_messages.BaseMessageLike[], _langchain_core_messages.BaseMessageLike[]>;
rationale: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
generatedQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
searchedQueries: _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
researchResult: _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
sourcesGathered: _langchain_langgraph.BinaryOperatorAggregate<SearchResultItem[], SearchResultItem[]>;
researchLoopCount: _langchain_langgraph.BinaryOperatorAggregate<number, number>;
reflectionState: {
(): _langchain_langgraph.LastValue<_langchain_langgraph.StateType<{
isSufficient: {
(): _langchain_langgraph.LastValue<boolean>;
(annotation: _langchain_langgraph.SingleReducer<boolean, boolean>): _langchain_langgraph.BinaryOperatorAggregate<boolean, boolean>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
knowledgeGap: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
followUpQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
numberOfRanQueries: {
(): _langchain_langgraph.LastValue<number>;
(annotation: _langchain_langgraph.SingleReducer<number, number>): _langchain_langgraph.BinaryOperatorAggregate<number, number>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}>>;
(annotation: _langchain_langgraph.SingleReducer<_langchain_langgraph.StateType<{
isSufficient: {
(): _langchain_langgraph.LastValue<boolean>;
(annotation: _langchain_langgraph.SingleReducer<boolean, boolean>): _langchain_langgraph.BinaryOperatorAggregate<boolean, boolean>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
knowledgeGap: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
followUpQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
numberOfRanQueries: {
(): _langchain_langgraph.LastValue<number>;
(annotation: _langchain_langgraph.SingleReducer<number, number>): _langchain_langgraph.BinaryOperatorAggregate<number, number>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}>, _langchain_langgraph.StateType<{
isSufficient: {
(): _langchain_langgraph.LastValue<boolean>;
(annotation: _langchain_langgraph.SingleReducer<boolean, boolean>): _langchain_langgraph.BinaryOperatorAggregate<boolean, boolean>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
knowledgeGap: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
followUpQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
numberOfRanQueries: {
(): _langchain_langgraph.LastValue<number>;
(annotation: _langchain_langgraph.SingleReducer<number, number>): _langchain_langgraph.BinaryOperatorAggregate<number, number>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}>>): _langchain_langgraph.BinaryOperatorAggregate<_langchain_langgraph.StateType<{
isSufficient: {
(): _langchain_langgraph.LastValue<boolean>;
(annotation: _langchain_langgraph.SingleReducer<boolean, boolean>): _langchain_langgraph.BinaryOperatorAggregate<boolean, boolean>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
knowledgeGap: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
followUpQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
numberOfRanQueries: {
(): _langchain_langgraph.LastValue<number>;
(annotation: _langchain_langgraph.SingleReducer<number, number>): _langchain_langgraph.BinaryOperatorAggregate<number, number>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}>, _langchain_langgraph.StateType<{
isSufficient: {
(): _langchain_langgraph.LastValue<boolean>;
(annotation: _langchain_langgraph.SingleReducer<boolean, boolean>): _langchain_langgraph.BinaryOperatorAggregate<boolean, boolean>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
knowledgeGap: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
followUpQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
numberOfRanQueries: {
(): _langchain_langgraph.LastValue<number>;
(annotation: _langchain_langgraph.SingleReducer<number, number>): _langchain_langgraph.BinaryOperatorAggregate<number, number>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}>>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}, {
messages: _langchain_langgraph.BinaryOperatorAggregate<_langchain_core_messages.BaseMessageLike[], _langchain_core_messages.BaseMessageLike[]>;
rationale: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
generatedQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
searchedQueries: _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
researchResult: _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
sourcesGathered: _langchain_langgraph.BinaryOperatorAggregate<SearchResultItem[], SearchResultItem[]>;
researchLoopCount: _langchain_langgraph.BinaryOperatorAggregate<number, number>;
reflectionState: {
(): _langchain_langgraph.LastValue<_langchain_langgraph.StateType<{
isSufficient: {
(): _langchain_langgraph.LastValue<boolean>;
(annotation: _langchain_langgraph.SingleReducer<boolean, boolean>): _langchain_langgraph.BinaryOperatorAggregate<boolean, boolean>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
knowledgeGap: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
followUpQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
numberOfRanQueries: {
(): _langchain_langgraph.LastValue<number>;
(annotation: _langchain_langgraph.SingleReducer<number, number>): _langchain_langgraph.BinaryOperatorAggregate<number, number>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}>>;
(annotation: _langchain_langgraph.SingleReducer<_langchain_langgraph.StateType<{
isSufficient: {
(): _langchain_langgraph.LastValue<boolean>;
(annotation: _langchain_langgraph.SingleReducer<boolean, boolean>): _langchain_langgraph.BinaryOperatorAggregate<boolean, boolean>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
knowledgeGap: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
followUpQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
numberOfRanQueries: {
(): _langchain_langgraph.LastValue<number>;
(annotation: _langchain_langgraph.SingleReducer<number, number>): _langchain_langgraph.BinaryOperatorAggregate<number, number>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}>, _langchain_langgraph.StateType<{
isSufficient: {
(): _langchain_langgraph.LastValue<boolean>;
(annotation: _langchain_langgraph.SingleReducer<boolean, boolean>): _langchain_langgraph.BinaryOperatorAggregate<boolean, boolean>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
knowledgeGap: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
followUpQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
numberOfRanQueries: {
(): _langchain_langgraph.LastValue<number>;
(annotation: _langchain_langgraph.SingleReducer<number, number>): _langchain_langgraph.BinaryOperatorAggregate<number, number>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}>>): _langchain_langgraph.BinaryOperatorAggregate<_langchain_langgraph.StateType<{
isSufficient: {
(): _langchain_langgraph.LastValue<boolean>;
(annotation: _langchain_langgraph.SingleReducer<boolean, boolean>): _langchain_langgraph.BinaryOperatorAggregate<boolean, boolean>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
knowledgeGap: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
followUpQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
numberOfRanQueries: {
(): _langchain_langgraph.LastValue<number>;
(annotation: _langchain_langgraph.SingleReducer<number, number>): _langchain_langgraph.BinaryOperatorAggregate<number, number>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}>, _langchain_langgraph.StateType<{
isSufficient: {
(): _langchain_langgraph.LastValue<boolean>;
(annotation: _langchain_langgraph.SingleReducer<boolean, boolean>): _langchain_langgraph.BinaryOperatorAggregate<boolean, boolean>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
knowledgeGap: {
(): _langchain_langgraph.LastValue<string>;
(annotation: _langchain_langgraph.SingleReducer<string, string>): _langchain_langgraph.BinaryOperatorAggregate<string, string>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
followUpQueries: {
(): _langchain_langgraph.LastValue<string[]>;
(annotation: _langchain_langgraph.SingleReducer<string[], string[]>): _langchain_langgraph.BinaryOperatorAggregate<string[], string[]>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
numberOfRanQueries: {
(): _langchain_langgraph.LastValue<number>;
(annotation: _langchain_langgraph.SingleReducer<number, number>): _langchain_langgraph.BinaryOperatorAggregate<number, number>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}>>;
Root: <S extends _langchain_langgraph.StateDefinition>(sd: S) => _langchain_langgraph.AnnotationRoot<S>;
};
}, zod.ZodObject<{
queryGeneratorModel: zod.ZodString;
reflectionModel: zod.ZodString;
answerModel: zod.ZodString;
numberOfInitialQueries: zod.ZodNumber;
maxResearchLoops: zod.ZodNumber;
}, zod_v4_core.$strip>, unknown, unknown, unknown>>;
private generateQuery;
private continueToSearch;
private research;
private reflection;
private evaluateResearch;
private finalizeAnswer;
private createClient;
}
declare const ConfigurationSchema: z.ZodObject<{
queryGeneratorModel: z.ZodString;
reflectionModel: z.ZodString;
answerModel: z.ZodString;
numberOfInitialQueries: z.ZodNumber;
maxResearchLoops: z.ZodNumber;
}, z.core.$strip>;
type Configuration = z.infer<typeof ConfigurationSchema>;
export { type Configuration, DeepResearch, type DeepResearchOptions, EventStreamEnum, NodeEnum, type SearchResultItem, type SearcherFunction };