import { Database } from '../database/Database.js';
import { VirtueVersion, VirtueVersionWithDetails, VirtueVersionStats, VersionChangesSummary, PersonalizedSubDimension, Virtue } from '../types/index.js';
export declare class VirtueVersionService {
    private db;
    private repository;
    constructor(db: Database);
    /**
     * Create a new version of a virtue
     */
    createNewVersion(virtueId: string, name: string, definition: string | null, subDimensions?: PersonalizedSubDimension[] | null, behavioralIndicators?: string[] | null, sourceType?: VirtueVersion['source_type'], sourceContext?: string | null, createdReason?: string | null): Promise<VirtueVersion>;
    /**
     * Activate a specific version
     */
    activateVersion(virtueId: string, versionNumber: number): Promise<boolean>;
    /**
     * Get all versions for a virtue with details
     */
    getVersionHistory(virtueId: string): Promise<VirtueVersionWithDetails[]>;
    /**
     * Get the active version for a virtue
     */
    getActiveVersion(virtueId: string): VirtueVersion | null;
    /**
     * Get detailed information for a specific version
     */
    getVersionDetails(virtueId: string, versionNumber: number): Promise<VirtueVersionWithDetails | null>;
    /**
     * Get usage statistics for a version
     */
    getVersionStatistics(virtueId: string, versionNumber: number): Promise<VirtueVersionStats>;
    /**
     * Compare two versions of a virtue
     */
    compareVersions(virtueId: string, fromVersion: number, toVersion: number): Promise<VersionChangesSummary>;
    /**
     * Delete a version (with safety checks)
     */
    deleteVersion(virtueId: string, versionNumber: number): Promise<boolean>;
    /**
     * Create a version from an existing virtue (for initial migration)
     */
    createInitialVersion(virtue: Virtue): Promise<VirtueVersion>;
    /**
     * Refine a virtue definition based on AI or user input
     */
    refineVirtueDefinition(virtueId: string, refinements: {
        name?: string;
        definition?: string;
        subDimensions?: PersonalizedSubDimension[];
        behavioralIndicators?: string[];
        refinementReason: string;
        sourceContext?: string;
    }): Promise<VirtueVersion>;
    /**
     * Get version summary for virtue management
     */
    getVersionSummary(virtueId: string): Promise<{
        totalVersions: number;
        activeVersion: number;
        lastModified: string;
        hasMultipleVersions: boolean;
    }>;
    private deactivateAllVersions;
    private updateVirtueVersionCounts;
    private createVersionComparison;
}
//# sourceMappingURL=VirtueVersionService.d.ts.map