/**
 * Skill Trigger Index Manager
 *
 * Manages the skill triggers index file used for automatic skill activation.
 *
 * @module core/plugins/skill-trigger-index
 * @version 1.0.0
 */
import { SkillTriggersIndex } from './skill-trigger-extractor.js';
/**
 * SkillTriggerIndexManager - Generate and manage skill triggers index
 */
export declare class SkillTriggerIndexManager {
    private extractor;
    private projectRoot;
    constructor(projectRoot?: string);
    /**
     * Resolve a path relative to project root, or use default if not provided
     */
    private resolvePath;
    /**
     * Generate the skill triggers index from all plugins
     *
     * @param pluginsDir - Path to plugins directory (relative or absolute)
     * @returns Generated index
     */
    generateIndex(pluginsDir?: string): Promise<SkillTriggersIndex>;
    /**
     * Save index to file
     *
     * @param index - Skill triggers index
     * @param indexPath - Path to save index (relative or absolute)
     */
    saveIndex(index: SkillTriggersIndex, indexPath?: string): Promise<string>;
    /**
     * Load index from file
     *
     * @param indexPath - Path to index file (relative or absolute)
     * @returns Loaded index or null if not found
     */
    loadIndex(indexPath?: string): Promise<SkillTriggersIndex | null>;
    /**
     * Generate and save index (convenience method)
     *
     * @param pluginsDir - Path to plugins directory
     * @param indexPath - Path to save index
     * @returns Generated index and path
     */
    generateAndSave(pluginsDir?: string, indexPath?: string): Promise<{
        index: SkillTriggersIndex;
        path: string;
    }>;
    /**
     * Match a user prompt against the index
     *
     * @param prompt - User prompt
     * @param index - Optional pre-loaded index
     * @returns Matched skills with scores
     */
    matchPrompt(prompt: string, index?: SkillTriggersIndex): Promise<Array<{
        fqn: string;
        score: number;
        matchedKeywords: string[];
    }>>;
    /**
     * Check if index needs regeneration
     *
     * @param maxAgeMs - Maximum age in milliseconds (default: 24 hours)
     * @returns True if index needs regeneration
     */
    needsRegeneration(maxAgeMs?: number): Promise<boolean>;
    /**
     * Get index statistics
     *
     * @returns Index stats or null if not found
     */
    getStats(): Promise<{
        skillCount: number;
        keywordCount: number;
        generatedAt: string;
        topKeywords: Array<{
            keyword: string;
            skillCount: number;
        }>;
    } | null>;
}
/**
 * CLI helper to generate index
 */
export declare function generateSkillTriggersIndexCLI(projectRoot?: string, pluginsDir?: string, indexPath?: string, verbose?: boolean): Promise<void>;
/**
 * CLI helper to test prompt matching
 */
export declare function testPromptMatchingCLI(prompt: string, projectRoot?: string, verbose?: boolean): Promise<void>;
//# sourceMappingURL=skill-trigger-index.d.ts.map