import { PromptTemplate } from '@langchain/core/prompts'; import { BaseRetriever } from '@langchain/core/retrievers'; import { IGraphNode, RunnableConfig } from '../../../graphs'; import { LLMProvider } from '../../../types'; import { DbQueryState } from '../state'; import { QueryTemplateMetadata } from '../types'; import { PermissionHelper } from '../services/permission-helper.service'; import { SchemaStore } from '../services/schema.store'; import { TemplateHelper } from '../services/template-helper.service'; export declare class CheckTemplatesNode implements IGraphNode { private readonly templateCache; private readonly llm; private readonly permissionHelper; private readonly templateHelper; private readonly schemaStore; constructor(templateCache: BaseRetriever, llm: LLMProvider, permissionHelper: PermissionHelper, templateHelper: TemplateHelper, schemaStore: SchemaStore); matchPrompt: PromptTemplate\nYou are an expert at matching user prompts to query templates.\nGiven a user prompt and a list of query templates with their canonical prompts and placeholders, determine if any template can EXACTLY fulfill the user's request.\n\nA template is a match ONLY if ALL of the following are true:\n- The template produces exactly the data the user is asking for — not more, not less\n- The user's intent is identical to the template's purpose, just with different parameter values\n- All non-optional placeholders can be filled from the user's prompt or have defaults\n- The template does not include extra filters, columns, or logic that the user did not ask for\n- The template does not omit any filters, columns, or logic that the user is asking for\n\nDo NOT match if:\n- The template is only similar or partially relevant\n- The template would need structural changes beyond placeholder substitution to answer the question\n- The user is asking for something the template cannot express through its placeholders alone\n\n\n{prompt}\n\n\n{templates}\n\n\nIf a template is an exact match, return: match \nIf no template exactly matches, return: no_match\n\nDo not return any other text or explanation.\n">, any>; execute(state: DbQueryState, config: RunnableConfig): Promise>; }