import type { ServerMode, ToolSet } from '../types/index.js'; /** * Simple server mode enforcer that checks environment variables and CLI arguments * for server-level mode overrides. Uses singleton pattern for global access. * * Precedence: CLI arguments > Environment variables * * @example * ```typescript * // Initialize in main() * ServerModeEnforcer.initialize(process.env, minimist(process.argv.slice(2))); * * // Access from factory * const enforcer = ServerModeEnforcer.getInstance(); * const override = enforcer.serverModeOverride; * if (override) { * console.log(`Server mode enforced: ${override}`); * } * ``` */ export declare class ServerModeEnforcer { private static instance; private readonly _serverModeOverride; private readonly _toolSets; private constructor(); /** * Initialize the singleton instance with environment variables and CLI arguments */ static initialize(envVars: Record, cliArgs: Record): void; /** * Get the singleton instance */ static getInstance(): ServerModeEnforcer; /** * Reset the singleton instance (for testing) */ static reset(): void; /** * Gets the server mode override, or null if no override is needed */ get serverModeOverride(): ServerMode | null; /** * Gets the validated toolsets when mode is STATIC_TOOL_SETS */ get toolSets(): ToolSet[]; /** * Determines if there's a server-level mode override from CLI args or env vars */ private _determineOverride; /** * Parses and validates tool sets, with error handling and process exit on invalid sets */ private _parseAndValidateToolSets; }