/** * Settings Manager * * Handles persistent configuration for the NotebookLM MCP Server. * Manages profiles, disabled tools, and environment variable overrides. */ import { Tool } from "@modelcontextprotocol/sdk/types.js"; export type ProfileName = "minimal" | "standard" | "full"; export interface Settings { profile: ProfileName; disabledTools: string[]; customSettings?: Record; } export declare class SettingsManager { private settingsPath; private settings; constructor(); /** * Load settings from file, falling back to defaults */ private loadSettings; /** * Sanitize an untrusted customSettings object before it is stored and later * spread/merged elsewhere. Strips prototype-pollution vectors * ("__proto__"/"constructor"/"prototype"), drops nested objects/arrays * (only primitive values are accepted), and bounds the number of keys. * Builds the result on a null-prototype object so a poisoned key can never * reach Object.prototype. */ private sanitizeCustomSettings; /** * Save current settings to file */ saveSettings(newSettings: Partial): Promise; /** * Get effective configuration (merging File settings with Env Vars) */ getEffectiveSettings(): Settings; /** * Filter tools based on effective configuration */ filterTools(allTools: Tool[]): Tool[]; getSettingsPath(): string; getProfiles(): Record; }