/**
 * NPM Hook Manager
 *
 * Manages NPM lifecycle hooks to automatically trigger project analysis
 * when packages are installed or updated.
 */
import { EventEmitter } from 'events';
export interface NPMHookConfig {
    enablePostInstall: boolean;
    enablePreInstall: boolean;
    enablePostUpdate: boolean;
    hookScriptPath?: string;
    projectRoot: string;
    analysisDelay: number;
}
export interface NPMHookEvent {
    type: 'postinstall' | 'preinstall' | 'postupdate';
    timestamp: Date;
    packageName?: string;
    version?: string;
    projectRoot: string;
    triggeredBy: 'npm' | 'yarn' | 'pnpm' | 'manual';
}
/**
 * NPM Hook Manager
 *
 * Provides automatic triggering of project analysis when npm packages
 * are installed, updated, or when dependencies change.
 */
export declare class NPMHookManager extends EventEmitter {
    private config;
    private isInitialized;
    private hookScriptContent;
    private packageJsonWatcher?;
    constructor(config?: Partial<NPMHookConfig>);
    /**
     * Initialize NPM hooks
     */
    initialize(): Promise<void>;
    /**
     * Manually trigger analysis (for testing or manual execution)
     */
    triggerAnalysis(reason?: string): Promise<void>;
    /**
     * Check if hooks are properly installed
     */
    validateHooks(): Promise<{
        isValid: boolean;
        issues: string[];
    }>;
    /**
     * Remove installed hooks
     */
    removeHooks(): Promise<void>;
    /**
     * Get hook installation status
     */
    getStatus(): {
        isInitialized: boolean;
        config: NPMHookConfig;
        hookScriptPath: string;
    };
    private validateProjectRoot;
    private installPostInstallHook;
    private installPreInstallHook;
    private installPostUpdateHook;
    private createHookScript;
    private updatePackageJson;
    private removeFromPackageJson;
    private setupPackageJsonWatcher;
    private getHookScriptPath;
    private generateHookScript;
}
//# sourceMappingURL=NPMHookManager.d.ts.map