import { URI } from "../../../../../base/common/uri.js"; import { IDynamicVariable } from "../attachments/chatVariables.js"; import { IChatVariablesService } from "../attachments/chatVariables.service.js"; import { ChatAgentLocation, ChatModeKind } from "../constants.js"; import { IChatAgentAttachmentCapabilities, IChatAgentData } from "../participants/chatAgents.js"; import { IChatAgentService } from "../participants/chatAgents.service.js"; import { IChatSlashCommandService } from "../participants/chatSlashCommands.service.js"; import { IPromptsService } from "../promptSyntax/service/promptsService.service.js"; import { IToolAndToolSetEnablementMap } from "../tools/languageModelToolsService.js"; import { IParsedChatRequest } from "./chatParserTypes.js"; export interface IChatParserContext { /** Used only as a disambiguator, when the query references an agent that has a duplicate with the same name. */ selectedAgent?: IChatAgentData; mode?: ChatModeKind; /** Parse as this agent, even when it does not appear in the query text */ forcedAgent?: IChatAgentData; attachmentCapabilities?: IChatAgentAttachmentCapabilities; } export declare class ChatRequestParser { private readonly agentService; private readonly variableService; private readonly slashCommandService; private readonly promptsService; constructor(agentService: IChatAgentService, variableService: IChatVariablesService, slashCommandService: IChatSlashCommandService, promptsService: IPromptsService); parseChatRequest(sessionResource: URI, message: string, location?: ChatAgentLocation, context?: IChatParserContext): IParsedChatRequest; parseChatRequestWithReferences(references: ReadonlyArray, selectedToolAndToolSets: IToolAndToolSetEnablementMap, message: string, location?: ChatAgentLocation, context?: IChatParserContext): IParsedChatRequest; private tryToParseAgent; private tryToParseVariable; private tryToParseSlashCommand; private tryToParseDynamicVariable; }