import type { DebugMetaAgent } from '../../chat/chat-streaming.types.js'; import type { HydeCache } from '../interfaces/cache.interface.js'; import type { HydeGraphDatabase } from '../interfaces/database.interface.js'; import type { EmbeddingGenerator } from '../interfaces/embedder.interface.js'; import { type HydeGenerationMode } from './hyde.env.js'; import { type HydeSourceFrame } from './hyde.frame.js'; import type { HydeGenerateInput, HydeGeneratorOutput } from './hyde.generator.js'; import { type HydeDocumentState } from './hyde.state.js'; import type { LensInferenceInput, LensInferenceOutput } from './lens.inferrer.js'; import { type HydeValidationInput, type HydeValidationOutput } from './hyde.validator.js'; /** Narrow lens inferrer contract accepted by the graph. */ export interface HydeLensInferrerLike { infer(input: LensInferenceInput): Promise; } /** Narrow document generator contract accepted by the graph. */ export interface HydeGeneratorLike { generate(input: HydeGenerateInput): Promise; } /** Narrow batch validator contract accepted by the graph. */ export interface HydeValidatorLike { validate(input: HydeValidationInput): Promise; } export interface HydeGraphOptions { /** Test override. Production derives the mode from HYDE_FRAME_CONSTRAINTS_ENABLED. */ mode?: HydeGenerationMode; validator?: HydeValidatorLike; } /** Factory for the HyDE generation graph. Existing five-argument calls remain valid. */ export declare class HydeGraphFactory { private database; private embedder; private cache; private inferrer; private generator; private options; constructor(database: HydeGraphDatabase, embedder: EmbeddingGenerator, cache: HydeCache, inferrer: HydeLensInferrerLike, generator: HydeGeneratorLike, options?: HydeGraphOptions); createGraph(): import("@langchain/langgraph").CompiledStateGraph<{ sourceType: "intent" | "context" | "query"; sourceId: import("../interfaces/database.interface.js").Id<"users"> | import("../interfaces/database.interface.js").Id<"intents"> | undefined; sourceText: string; profileContext: string | undefined; maxLenses: number; forceRegenerate: boolean; lenses: import("./lens.inferrer.js").Lens[]; sourceFrame: HydeSourceFrame | undefined; frameFingerprint: string | undefined; sourceTextHash: string | undefined; generatedAt: string | undefined; hydeDocuments: Record; hydeEmbeddings: Record; error: string | undefined; agentTimings: DebugMetaAgent[]; }, { sourceType?: "intent" | "context" | "query" | undefined; sourceId?: import("../interfaces/database.interface.js").Id<"users"> | import("../interfaces/database.interface.js").Id<"intents"> | import("@langchain/langgraph").OverwriteValue | import("../interfaces/database.interface.js").Id<"intents"> | undefined> | undefined; sourceText?: string | undefined; profileContext?: string | import("@langchain/langgraph").OverwriteValue | undefined; maxLenses?: number | import("@langchain/langgraph").OverwriteValue | undefined; forceRegenerate?: boolean | import("@langchain/langgraph").OverwriteValue | undefined; lenses?: import("./lens.inferrer.js").Lens[] | import("@langchain/langgraph").OverwriteValue | undefined; sourceFrame?: HydeSourceFrame | import("@langchain/langgraph").OverwriteValue | undefined; frameFingerprint?: string | import("@langchain/langgraph").OverwriteValue | undefined; sourceTextHash?: string | import("@langchain/langgraph").OverwriteValue | undefined; generatedAt?: string | import("@langchain/langgraph").OverwriteValue | undefined; hydeDocuments?: Record | import("@langchain/langgraph").OverwriteValue> | undefined; hydeEmbeddings?: Record | import("@langchain/langgraph").OverwriteValue> | undefined; error?: string | import("@langchain/langgraph").OverwriteValue | undefined; agentTimings?: DebugMetaAgent[] | import("@langchain/langgraph").OverwriteValue | undefined; }, "__start__" | "infer_lenses" | "check_cache" | "generate_missing" | "embed" | "cache_results", { sourceType: { (annotation: import("@langchain/langgraph").SingleReducer<"intent" | "context" | "query", "intent" | "context" | "query">): import("@langchain/langgraph").BaseChannel<"intent" | "context" | "query", "intent" | "context" | "query" | import("@langchain/langgraph").OverwriteValue<"intent" | "context" | "query">, unknown>; (): import("@langchain/langgraph").LastValue<"intent" | "context" | "query">; Root: (sd: S) => import("@langchain/langgraph").AnnotationRoot; }; sourceId: import("@langchain/langgraph").BaseChannel | import("../interfaces/database.interface.js").Id<"intents"> | undefined, import("../interfaces/database.interface.js").Id<"users"> | import("../interfaces/database.interface.js").Id<"intents"> | import("@langchain/langgraph").OverwriteValue | import("../interfaces/database.interface.js").Id<"intents"> | undefined> | undefined, unknown>; sourceText: { (annotation: import("@langchain/langgraph").SingleReducer): import("@langchain/langgraph").BaseChannel, unknown>; (): import("@langchain/langgraph").LastValue; Root: (sd: S) => import("@langchain/langgraph").AnnotationRoot; }; profileContext: import("@langchain/langgraph").BaseChannel | undefined, unknown>; maxLenses: import("@langchain/langgraph").BaseChannel, unknown>; forceRegenerate: import("@langchain/langgraph").BaseChannel, unknown>; lenses: import("@langchain/langgraph").BaseChannel, unknown>; sourceFrame: import("@langchain/langgraph").BaseChannel | undefined, unknown>; frameFingerprint: import("@langchain/langgraph").BaseChannel | undefined, unknown>; sourceTextHash: import("@langchain/langgraph").BaseChannel | undefined, unknown>; generatedAt: import("@langchain/langgraph").BaseChannel | undefined, unknown>; hydeDocuments: import("@langchain/langgraph").BaseChannel, Record | import("@langchain/langgraph").OverwriteValue>, unknown>; hydeEmbeddings: import("@langchain/langgraph").BaseChannel, Record | import("@langchain/langgraph").OverwriteValue>, unknown>; error: import("@langchain/langgraph").BaseChannel | undefined, unknown>; agentTimings: import("@langchain/langgraph").BaseChannel, unknown>; }, { sourceType: { (annotation: import("@langchain/langgraph").SingleReducer<"intent" | "context" | "query", "intent" | "context" | "query">): import("@langchain/langgraph").BaseChannel<"intent" | "context" | "query", "intent" | "context" | "query" | import("@langchain/langgraph").OverwriteValue<"intent" | "context" | "query">, unknown>; (): import("@langchain/langgraph").LastValue<"intent" | "context" | "query">; Root: (sd: S) => import("@langchain/langgraph").AnnotationRoot; }; sourceId: import("@langchain/langgraph").BaseChannel | import("../interfaces/database.interface.js").Id<"intents"> | undefined, import("../interfaces/database.interface.js").Id<"users"> | import("../interfaces/database.interface.js").Id<"intents"> | import("@langchain/langgraph").OverwriteValue | import("../interfaces/database.interface.js").Id<"intents"> | undefined> | undefined, unknown>; sourceText: { (annotation: import("@langchain/langgraph").SingleReducer): import("@langchain/langgraph").BaseChannel, unknown>; (): import("@langchain/langgraph").LastValue; Root: (sd: S) => import("@langchain/langgraph").AnnotationRoot; }; profileContext: import("@langchain/langgraph").BaseChannel | undefined, unknown>; maxLenses: import("@langchain/langgraph").BaseChannel, unknown>; forceRegenerate: import("@langchain/langgraph").BaseChannel, unknown>; lenses: import("@langchain/langgraph").BaseChannel, unknown>; sourceFrame: import("@langchain/langgraph").BaseChannel | undefined, unknown>; frameFingerprint: import("@langchain/langgraph").BaseChannel | undefined, unknown>; sourceTextHash: import("@langchain/langgraph").BaseChannel | undefined, unknown>; generatedAt: import("@langchain/langgraph").BaseChannel | undefined, unknown>; hydeDocuments: import("@langchain/langgraph").BaseChannel, Record | import("@langchain/langgraph").OverwriteValue>, unknown>; hydeEmbeddings: import("@langchain/langgraph").BaseChannel, Record | import("@langchain/langgraph").OverwriteValue>, unknown>; error: import("@langchain/langgraph").BaseChannel | undefined, unknown>; agentTimings: import("@langchain/langgraph").BaseChannel, unknown>; }, import("@langchain/langgraph").StateDefinition, { infer_lenses: { lenses: import("./lens.inferrer.js").Lens[]; sourceFrame: HydeSourceFrame; frameFingerprint: string; sourceTextHash: string; generatedAt: string; agentTimings: DebugMetaAgent[]; } | { lenses: import("./lens.inferrer.js").Lens[]; agentTimings: DebugMetaAgent[]; sourceFrame?: undefined; frameFingerprint?: undefined; sourceTextHash?: undefined; generatedAt?: undefined; }; check_cache: { hydeDocuments: { [k: string]: HydeDocumentState; }; }; generate_missing: { hydeDocuments: { [x: string]: HydeDocumentState; }; agentTimings: DebugMetaAgent[]; }; embed: { hydeDocuments: Record; hydeEmbeddings: Record; }; cache_results: {}; }, unknown, unknown, []>; }