import { IAgent, IAgentConfig } from './IAgent'; /** * Abstract base class for agents that write to a single configuration file. * Implements common logic for applying ruler configuration. */ export declare abstract class AbstractAgent implements IAgent { /** * Returns the lowercase identifier of the agent. */ abstract getIdentifier(): string; /** * Returns the display name of the agent. */ abstract getName(): string; /** * Returns the default output path for this agent given the project root. */ abstract getDefaultOutputPath(projectRoot: string): string; /** * Applies the concatenated ruler rules to the agent's configuration. * This implementation handles the common pattern of: * 1. Determining the output path * 2. Ensuring the parent directory exists * 3. Backing up the existing file * 4. Writing the new content */ applyRulerConfig(concatenatedRules: string, projectRoot: string, _rulerMcpJson: Record | null, agentConfig?: IAgentConfig, backup?: boolean): Promise; /** * Returns the specific key to be used for the server object in MCP JSON. * Defaults to 'mcpServers' if not overridden. */ getMcpServerKey(): string; /** * Returns whether this agent supports MCP STDIO servers. * Defaults to false if not overridden. */ supportsMcpStdio(): boolean; /** * Returns whether this agent supports MCP remote servers. * Defaults to false if not overridden. */ supportsMcpRemote(): boolean; /** * Returns whether this agent supports MCP server timeout configuration. * Defaults to false if not overridden. */ supportsMcpTimeout(): boolean; /** * Returns whether this agent has native skills support. * Defaults to false if not overridden. */ supportsNativeSkills(): boolean; }