/** * Addon Plugin Interface * * Base class for all addon plugins (auth, payments, storage, etc.) * Addon plugins extend framework functionality. */ import type { FactiiiConfig, Fix, DeployResult } from '../../types/index.js'; /** * Abstract base class for addon plugins */ export declare abstract class AddonPlugin { static readonly id: string; static readonly name: string; static readonly category: 'addon'; static readonly version: string; static readonly fixes: Fix[]; static readonly requiredEnvVars: string[]; static readonly configSchema: Record; static readonly autoConfigSchema: Record; protected config: FactiiiConfig; constructor(config: FactiiiConfig); /** * Determine if this plugin should be loaded for this project * @param rootDir - Project root directory * @param config - Loaded config */ static shouldLoad(_rootDir: string, _config: FactiiiConfig): Promise; /** * Auto-detect addon configuration * @param rootDir - Project root directory */ static detectConfig(_rootDir: string): Promise>; /** * Deploy to an environment */ abstract deploy(config: FactiiiConfig, environment: string): Promise; /** * Undeploy from an environment */ abstract undeploy(config: FactiiiConfig, environment: string): Promise; } export default AddonPlugin; //# sourceMappingURL=addon.d.ts.map