/**
 * Data Volume Management System for Epic 7: Configuration Extensibility Framework
 * Manages realistic data volume configuration and generation patterns
 */
import { ExtendedSeedConfig } from '../../core/types/config-types';
export interface DataVolumeProfile {
    name: string;
    description: string;
    userCount: number;
    avgItemsPerUser: number;
    avgRelationshipsPerItem: number;
    dataQualityLevel: 'basic' | 'rich' | 'production';
    environment: 'development' | 'staging' | 'production';
    estimatedSeedingTime: number;
    storageRequirement: number;
}
export interface DataGenerationMetrics {
    totalUsers: number;
    totalItems: number;
    totalRelationships: number;
    publicContentCount: number;
    privateContentCount: number;
    draftContentCount: number;
    estimatedDatabaseSize: number;
    estimatedSeedingTime: number;
}
export interface DomainSpecificPatterns {
    domain: string;
    contentTypes: string[];
    relationshipPatterns: Array<{
        from: string;
        to: string;
        expectedRatio: number;
        description: string;
    }>;
    seasonalFactors: Array<{
        period: string;
        multiplier: number;
        affects: string[];
    }>;
    userBehaviorProfiles: Array<{
        type: string;
        percentage: number;
        activityLevel: 'low' | 'medium' | 'high';
        contentCreationRate: number;
    }>;
}
export declare class DataVolumeManager {
    private domainPatterns;
    constructor();
    /**
     * Generate comprehensive data volume configuration
     */
    generateDataVolumeConfiguration(requirements: {
        environment: 'development' | 'staging' | 'production';
        testingScenarios: string[];
        expectedLoad: 'light' | 'medium' | 'heavy';
        domainType?: string;
        customConstraints?: {
            maxUsers?: number;
            maxSeedingTime?: number;
            maxDatabaseSize?: number;
        };
    }): ExtendedSeedConfig['dataVolumes'];
    /**
     * Calculate data generation metrics
     */
    calculateGenerationMetrics(config: ExtendedSeedConfig): DataGenerationMetrics;
    /**
     * Get recommended profile for specific use case
     */
    getRecommendedProfile(useCase: 'ci-testing' | 'development' | 'demo' | 'load-testing' | 'production'): DataVolumeProfile;
    /**
     * Validate data volume configuration
     */
    validateDataVolumeConfiguration(config: ExtendedSeedConfig['dataVolumes']): {
        valid: boolean;
        errors: string[];
        warnings: string[];
        recommendations: string[];
    };
    /**
     * Private helper methods
     */
    private getBaseVolumesByEnvironment;
    private getLoadMultiplier;
    private generateContentRatios;
    private generateRelationshipDensity;
    private selectUserDistribution;
    private generateVolumeProfiles;
    private estimateDatabaseSize;
    private estimateSeedingTime;
    private initializeDomainPatterns;
}
//# sourceMappingURL=data-volume-manager.d.ts.map