import { ToolResult } from '../types.js'; import { WorkspaceService } from './WorkspaceService.js'; export interface ProjectConfig { allowedCommands: string[]; format?: string; formatOnSave: boolean; formatCommand?: string; gitAutoCommit: boolean; gitAutoCommitMessage?: string; projectInstructions?: string; projectDescription?: string; customTools?: Array<{ name: string; command: string; description: string; args?: Record; }>; sessionTracking: boolean; maxSessionCommits?: number; remoteServer?: { enabled: boolean; host?: string; port?: number; }; } export interface SessionInfo { id: string; description: string; startTime: string; branch?: string; commitHashes: string[]; isActive: boolean; } export declare class ProjectConfigService { private static readonly CONFIG_FILENAME; private configCache; private workspaceService; private currentSession?; constructor(workspaceService: WorkspaceService); /** * Load project configuration from .vscode-mcp.toml */ loadProjectConfig(workspacePath?: string): Promise; /** * Save project configuration to .vscode-mcp.toml */ saveProjectConfig(config: ProjectConfig, workspacePath?: string): Promise; /** * Check if a command is allowed to run */ isCommandAllowed(command: string, workspacePath?: string): Promise; /** * Start a new coding session */ startCodingSession(description: string, branch?: string): Promise; /** * End the current coding session */ endCodingSession(): Promise; /** * Get current session info */ getCurrentSession(): SessionInfo | undefined; /** * Add commit hash to current session */ addCommitToSession(commitHash: string): void; /** * Clear configuration cache */ clearCache(): void; /** * Get default configuration */ private getDefaultConfig; /** * Merge user config with defaults */ private mergeWithDefaults; /** * Generate sample configuration file */ generateSampleConfig(): string; /** * Get history of coding sessions with their commits */ getSessionCommitHistory(limit?: number): Promise; /** * Validate and secure a command before execution */ validateSecureCommand(command: string, workspacePath?: string): Promise<{ allowed: boolean; reason?: string; sanitizedCommand?: string; }>; } //# sourceMappingURL=ProjectConfigService.d.ts.map