export interface TriggerEvent {
    id: string;
    type: "context-change" | "schema-change" | "component-refinement" | "approval-change";
    timestamp: string;
    description: string;
    affectedComponents: string[];
    userAction: string;
    metadata?: Record<string, any>;
}
export interface TriggerLog {
    events: TriggerEvent[];
    lastUpdated: string;
    version: string;
}
export declare class TriggerLogger {
    private logPath;
    /**
     * Log a trigger event
     */
    logTrigger(type: TriggerEvent["type"], description: string, affectedComponents: string[], userAction: string, metadata?: Record<string, any>): Promise<void>;
    /**
     * Log context file changes
     */
    logContextChange(changedFiles: string[], userAction?: string): Promise<void>;
    /**
     * Log schema changes
     */
    logSchemaChange(userAction?: string): Promise<void>;
    /**
     * Log component refinement
     */
    logComponentRefinement(componentName: string, refinementType: "in-place" | "context-update", userAction?: string): Promise<void>;
    /**
     * Log approval changes
     */
    logApprovalChange(featureId: string, oldApproval: boolean | null, newApproval: boolean | null, userAction?: string): Promise<void>;
    /**
     * Get recent trigger events
     */
    getRecentEvents(limit?: number): Promise<TriggerEvent[]>;
    /**
     * Get events by type
     */
    getEventsByType(type: TriggerEvent["type"]): Promise<TriggerEvent[]>;
    /**
     * Get events affecting a specific component
     */
    getEventsForComponent(componentName: string): Promise<TriggerEvent[]>;
    /**
     * Check if component needs regeneration based on triggers
     */
    needsRegeneration(componentName: string): Promise<boolean>;
    /**
     * Get regeneration recommendations
     */
    getRegenerationRecommendations(): Promise<{
        shouldRegenerate: string[];
        reason: string;
    }>;
    /**
     * Clear old events (keep last 50)
     */
    cleanupOldEvents(): Promise<void>;
    /**
     * Load trigger log from file
     */
    private loadLog;
    /**
     * Save trigger log to file
     */
    private saveLog;
    /**
     * Generate unique event ID
     */
    private generateEventId;
    /**
     * Get affected components from context file changes
     */
    private getAffectedComponentsFromContext;
    /**
     * Get affected components from schema changes
     */
    private getAffectedComponentsFromSchema;
    /**
     * Get affected components from feature approval changes
     */
    private getAffectedComponentsFromFeature;
    /**
     * Get all component names from component list
     */
    private getAllComponentNames;
    /**
     * Display trigger log summary
     */
    displaySummary(): Promise<void>;
    /**
     * Get human-readable time ago
     */
    private getTimeAgo;
}
//# sourceMappingURL=TriggerLogger.d.ts.map