/**
 * Plugin Installation Flag Management
 *
 * Creates and manages flag files that track plugin installations during
 * a Claude Code session. These flags enable the session restart warning
 * feature to detect when plugins were installed and notify the user.
 *
 * Flag files are stored in `.specweave/state/`:
 * - `plugins-installed-this-session.flag` - JSON with installation metadata
 * - `installed-plugins.txt` - Simple text file with one plugin per line
 *
 * @module cli/helpers/init/plugin-install-flags
 */
import type { PluginInstallTrigger } from '../../../core/session/plugin-install-detector.js';
/**
 * Plugin installation flag data
 */
export interface PluginInstallFlag {
    /** ISO-8601 timestamp of installation */
    timestamp: string;
    /** List of installed plugins */
    plugins: string[];
    /** What triggered the installation */
    trigger: PluginInstallTrigger;
    /** Project path where installation occurred */
    projectPath?: string;
}
/**
 * Options for creating a plugin install flag
 */
export interface CreateFlagOptions {
    /** List of plugins installed */
    plugins: string[];
    /** What triggered the installation */
    trigger: PluginInstallTrigger;
    /** Project path */
    projectPath?: string;
}
/**
 * Create plugin installation flag files
 *
 * Creates both the JSON flag file and the plain text plugins file
 * to track that plugins were installed during this session.
 *
 * @param projectRoot - Root directory of the project
 * @param options - Flag creation options
 *
 * @example
 * ```typescript
 * createPluginInstallFlag('/path/to/project', {
 *   plugins: ['sw', 'frontend'],
 *   trigger: 'specweave-init',
 *   projectPath: '/path/to/project'
 * });
 * ```
 */
export declare function createPluginInstallFlag(projectRoot: string, options: CreateFlagOptions): void;
/**
 * Read plugin installation flag
 *
 * Reads the flag file and returns its contents. Returns null if
 * the file doesn't exist or contains invalid data.
 *
 * @param projectRoot - Root directory of the project
 * @returns Flag data or null if not found/invalid
 *
 * @example
 * ```typescript
 * const flag = readPluginInstallFlag('/path/to/project');
 * if (flag) {
 *   console.log('Plugins installed:', flag.plugins);
 * }
 * ```
 */
export declare function readPluginInstallFlag(projectRoot: string): PluginInstallFlag | null;
/**
 * Append plugins to existing flag
 *
 * Adds new plugins to an existing flag file. If no flag exists,
 * creates a new one with 'manual' trigger.
 *
 * @param projectRoot - Root directory of the project
 * @param newPlugins - Plugins to append
 *
 * @example
 * ```typescript
 * appendInstalledPlugins('/path/to/project', ['sw-github', 'sw-jira']);
 * ```
 */
export declare function appendInstalledPlugins(projectRoot: string, newPlugins: string[]): void;
/**
 * Clear plugin installation flag files
 *
 * Removes both the JSON flag file and the plain text plugins file.
 * Safe to call even if files don't exist.
 *
 * @param projectRoot - Root directory of the project
 *
 * @example
 * ```typescript
 * clearPluginInstallFlag('/path/to/project');
 * ```
 */
export declare function clearPluginInstallFlag(projectRoot: string): void;
/**
 * Check if plugins were installed this session
 *
 * Quick check for whether the flag file exists.
 *
 * @param projectRoot - Root directory of the project
 * @returns True if flag exists
 */
export declare function hasPluginInstallFlag(projectRoot: string): boolean;
//# sourceMappingURL=plugin-install-flags.d.ts.map