/** * Windows Server Plugin * * Handles Windows-specific package management and commands. * Used for deploying to Windows servers or local Windows development. * * STATUS: Template - not fully implemented yet * * ============================================================ * PLUGIN STRUCTURE STANDARD * ============================================================ * * This plugin follows a standardized structure for clarity and maintainability: * * **scanfix/** - Scan/fix operations organized by concern * - Each file exports an array of Fix[] objects * - All fixes are combined in the main plugin class * * **index.ts** - Main plugin class * - Static metadata (id, name, category, version, os, packageManager, serviceManager) * - shouldLoad() - Determines if plugin should load * - OS-specific installation commands * ============================================================ */ import type { FactiiiConfig, EnvironmentConfig, DeployResult, EnsureServerReadyOptions, Fix, ServerOS, PackageManager, ServiceManager } from '../../../types/index.js'; declare class WindowsPlugin { static readonly id = "windows"; static readonly name = "Windows Server"; static readonly category: 'server'; static readonly version = "1.0.0"; /** The OS this server plugin handles */ static readonly os: ServerOS; /** Package manager for Windows (chocolatey) */ static readonly packageManager: PackageManager; /** Service manager for Windows */ static readonly serviceManager: ServiceManager; static readonly requiredEnvVars: string[]; static readonly configSchema: Record; static readonly autoConfigSchema: Record; /** * Determine if this plugin should be loaded for this project * Loads if config has environment with server: 'windows' */ static shouldLoad(_rootDir: string, config: FactiiiConfig): Promise; static helpText: Record; static readonly fixes: Fix[]; /** * Auto-detect Windows configuration */ static detectConfig(_rootDir: string): Promise<{ ssh_user: string; }>; /** * Execute a command on a remote server via SSH */ static sshExec(envConfig: EnvironmentConfig, command: string): Promise; /** * Get the command to install Docker on Windows * Requires Docker Desktop or WSL2 with Docker */ static getDockerInstallCommand(): string; /** * Get the command to install Node.js on Windows */ static getNodeInstallCommand(): string; /** * Get the command to install git on Windows */ static getGitInstallCommand(): string; /** * Get the command to install Chocolatey (package manager) */ static getChocoInstallCommand(): string; private _config; constructor(config: FactiiiConfig); /** * Ensure server is ready for deployment */ ensureServerReady(config: FactiiiConfig, environment: string, options?: EnsureServerReadyOptions): Promise; /** * Deploy to an environment */ deploy(config: FactiiiConfig, environment: string): Promise; /** * Undeploy from an environment */ undeploy(config: FactiiiConfig, environment: string): Promise; } export default WindowsPlugin; //# sourceMappingURL=index.d.ts.map