/**
 * Archetype Types and Configuration System
 * Comprehensive type definitions with 10+ archetype categories, behavior patterns, and generation configurations
 * Part of Task 4.1: Platform-specific archetype system (individual/team/hybrid architectures)
 */
import type { ContentDomainType, PlatformArchitectureType } from '../features/detection/detection-types';
export type { UserArchetype, IdentityProviderType } from '../auth/auth-types';
/**
 * Extended archetype categories for comprehensive coverage
 */
export type ArchetypeCategory = 'creator' | 'consumer' | 'collaborator' | 'curator' | 'analyst' | 'administrator' | 'enterprise' | 'professional' | 'casual' | 'power_user' | 'mobile_first' | 'security_focused';
/**
 * Behavior pattern engine for realistic user scenarios
 */
export interface BehaviorPattern {
    /** Activity level and frequency */
    activity: {
        /** Sessions per week */
        sessionsPerWeek: number;
        /** Average session duration in minutes */
        avgSessionDuration: number;
        /** Peak activity hours (0-23) */
        peakHours: number[];
        /** Preferred days of week */
        preferredDays: ('monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday')[];
    };
    /** Content interaction patterns */
    contentInteraction: {
        /** Ratio of content creation vs consumption */
        creationToConsumptionRatio: number;
        /** Types of content preferred */
        preferredContentTypes: string[];
        /** Sharing behavior frequency */
        sharingFrequency: 'never' | 'rarely' | 'sometimes' | 'often' | 'always';
        /** Comment/feedback behavior */
        engagementLevel: 'passive' | 'occasional' | 'active' | 'very_active';
    };
    /** Social interaction patterns */
    socialBehavior: {
        /** Collaboration preference */
        collaborationStyle: 'solo' | 'small_group' | 'large_group' | 'flexible';
        /** Network size preference */
        networkSize: 'small' | 'medium' | 'large' | 'unlimited';
        /** Privacy preference */
        privacyLevel: 'public' | 'limited' | 'private' | 'custom';
        /** Leadership tendency */
        leadershipTendency: 'follower' | 'contributor' | 'leader' | 'independent';
    };
    /** Technology adoption patterns */
    technologyAdoption: {
        /** Feature adoption speed */
        adoptionSpeed: 'early' | 'mainstream' | 'late' | 'laggard';
        /** Complexity tolerance */
        complexityTolerance: 'low' | 'medium' | 'high' | 'expert';
        /** Platform loyalty */
        platformLoyalty: 'switcher' | 'loyal' | 'multi_platform' | 'ecosystem_dependent';
    };
}
/**
 * Platform-specific behavior customizations
 */
export interface PlatformBehavior {
    /** Platform architecture alignment */
    architecture: PlatformArchitectureType;
    /** Domain-specific behaviors */
    domainBehaviors: Record<ContentDomainType, {
        /** Activity multiplier for this domain */
        activityMultiplier: number;
        /** Preferred interaction types */
        preferredInteractions: string[];
        /** Content creation patterns */
        contentPatterns: {
            frequency: 'rare' | 'occasional' | 'regular' | 'frequent';
            types: string[];
            quality: 'basic' | 'standard' | 'high' | 'professional';
        };
    }>;
    /** Account type preferences */
    accountTypePreferences: {
        personal: {
            likelihood: number;
            setupCount: number;
            privacyLevel: 'public' | 'limited' | 'private';
        };
        team: {
            likelihood: number;
            teamSize: number;
            role: 'member' | 'admin' | 'owner';
        };
    };
}
/**
 * Comprehensive archetype generation configuration
 */
export interface ArchetypeGenerationConfig {
    /** Configuration metadata */
    metadata: {
        version: string;
        lastUpdated: Date;
        author?: string;
    };
    /** Generation strategy */
    strategy: {
        /** How to select archetypes */
        selectionStrategy: 'random' | 'weighted' | 'balanced' | 'custom';
        /** Distribution across categories */
        categoryDistribution: Record<ArchetypeCategory, number>;
        /** Ensure diversity across platforms */
        enforceDiversity: boolean;
        /** Custom archetype weights */
        customWeights?: Record<string, number>;
    };
    /** Behavior pattern configuration */
    behaviorGeneration: {
        /** Enable realistic behavior patterns */
        enableRealisticPatterns: boolean;
        /** Seasonal behavior variations */
        seasonalVariations: boolean;
        /** Time-based activity patterns */
        timeBasedPatterns: boolean;
        /** Cross-platform behavior consistency */
        crossPlatformConsistency: number;
    };
    /** Content generation settings */
    contentGeneration: {
        /** Generate user-specific content preferences */
        personalizedPreferences: boolean;
        /** Content quality distribution */
        qualityDistribution: {
            basic: number;
            standard: number;
            high: number;
            professional: number;
        };
        /** Multi-language content support */
        multiLanguageSupport: boolean;
        /** Content scheduling patterns */
        schedulingPatterns: boolean;
    };
    /** Archetype validation */
    validation: {
        /** Ensure archetype uniqueness */
        enforceUniqueness: boolean;
        /** Validate behavior pattern consistency */
        validateBehaviorConsistency: boolean;
        /** Check platform compatibility */
        checkPlatformCompatibility: boolean;
        /** Custom validation rules */
        customValidationRules?: Array<(archetype: any) => {
            valid: boolean;
            errors: string[];
        }>;
    };
    /** Testing and debugging */
    testing: {
        /** Enable debug logging */
        debugMode: boolean;
        /** Generate test data sets */
        generateTestSets: boolean;
        /** Include behavior simulation data */
        includeBehaviorSimulation: boolean;
        /** Export archetype analysis */
        exportAnalysis: boolean;
    };
}
/**
 * Individual creator archetype template
 */
export interface IndividualArchetype {
    /** Base archetype information */
    id: string;
    name: string;
    description: string;
    category: ArchetypeCategory;
    /** Individual-specific properties */
    individual: {
        /** Personal brand focus */
        personalBrand: 'minimal' | 'moderate' | 'strong' | 'professional';
        /** Content creation motivation */
        motivation: 'hobby' | 'passion' | 'professional' | 'business';
        /** Skill level */
        skillLevel: 'beginner' | 'intermediate' | 'advanced' | 'expert';
        /** Time investment */
        timeInvestment: 'minimal' | 'moderate' | 'significant' | 'full_time';
    };
    /** Content strategy */
    contentStrategy: {
        /** Primary content types */
        primaryTypes: string[];
        /** Publishing frequency */
        frequency: 'sporadic' | 'weekly' | 'daily' | 'multiple_daily';
        /** Quality focus */
        qualityFocus: 'quantity' | 'quality' | 'balanced' | 'perfectionist';
        /** Audience interaction */
        audienceInteraction: 'minimal' | 'responsive' | 'proactive' | 'community_focused';
    };
    /** Platform behavior */
    platformBehavior: PlatformBehavior;
    /** Base behavior patterns */
    behaviorPattern: BehaviorPattern;
}
/**
 * Team/organization archetype template
 */
export interface TeamArchetype {
    /** Base archetype information */
    id: string;
    name: string;
    description: string;
    category: ArchetypeCategory;
    /** Team-specific properties */
    team: {
        /** Team size preference */
        teamSize: 'small' | 'medium' | 'large' | 'enterprise';
        /** Organization type */
        organizationType: 'startup' | 'agency' | 'corporation' | 'nonprofit' | 'government';
        /** Collaboration style */
        collaborationStyle: 'hierarchical' | 'flat' | 'matrix' | 'agile';
        /** Decision making process */
        decisionMaking: 'centralized' | 'distributed' | 'consensus' | 'delegated';
    };
    /** Role distribution */
    roleDistribution: {
        /** Admin/owner percentage */
        admins: number;
        /** Regular member percentage */
        members: number;
        /** Viewer/guest percentage */
        viewers: number;
        /** Specialized roles */
        specializedRoles?: Record<string, number>;
    };
    /** Team behavior patterns */
    teamBehavior: {
        /** Meeting frequency */
        meetingFrequency: 'rare' | 'weekly' | 'daily' | 'constant';
        /** Communication style */
        communicationStyle: 'formal' | 'casual' | 'mixed' | 'contextual';
        /** Project management approach */
        projectManagement: 'ad_hoc' | 'structured' | 'agile' | 'waterfall';
        /** Knowledge sharing */
        knowledgeSharing: 'minimal' | 'documentation' | 'collaborative' | 'open';
    };
    /** Platform behavior */
    platformBehavior: PlatformBehavior;
}
/**
 * Hybrid archetype combining individual and team behaviors
 */
export interface HybridArchetype {
    /** Base archetype information */
    id: string;
    name: string;
    description: string;
    category: ArchetypeCategory;
    /** Hybrid-specific properties */
    hybrid: {
        /** Individual vs team time split (0-1) */
        individualTeamSplit: number;
        /** Role switching frequency */
        roleSwitchingFrequency: 'rare' | 'occasional' | 'frequent' | 'contextual';
        /** Context adaptation speed */
        adaptationSpeed: 'slow' | 'moderate' | 'fast' | 'instant';
    };
    /** Individual behavior component */
    individualBehavior: Partial<IndividualArchetype>;
    /** Team behavior component */
    teamBehavior: Partial<TeamArchetype>;
    /** Context switching rules */
    contextSwitching: {
        /** Triggers for individual mode */
        individualTriggers: string[];
        /** Triggers for team mode */
        teamTriggers: string[];
        /** Default mode */
        defaultMode: 'individual' | 'team' | 'adaptive';
    };
}
/**
 * Domain-specific archetype extensions
 */
export interface DomainArchetypeExtension {
    /** Domain identifier */
    domain: ContentDomainType;
    /** Domain-specific properties */
    domainProperties: Record<string, any>;
    /** Domain behavior patterns */
    domainBehaviors: {
        /** Typical use cases */
        useCases: string[];
        /** Interaction patterns */
        interactionPatterns: string[];
        /** Content preferences */
        contentPreferences: {
            types: string[];
            formats: string[];
            complexity: 'simple' | 'moderate' | 'complex' | 'expert';
        };
    };
    /** Domain-specific metrics */
    domainMetrics: {
        /** Engagement indicators */
        engagementIndicators: string[];
        /** Success metrics */
        successMetrics: string[];
        /** Performance benchmarks */
        performanceBenchmarks: Record<string, number>;
    };
}
/**
 * Archetype generation result
 */
export interface ArchetypeGenerationResult {
    /** Whether generation was successful */
    success: boolean;
    /** Generated archetypes */
    archetypes: {
        individual: IndividualArchetype[];
        team: TeamArchetype[];
        hybrid: HybridArchetype[];
    };
    /** Generation statistics */
    statistics: {
        /** Total archetypes generated */
        totalGenerated: number;
        /** Distribution by category */
        categoryDistribution: Record<ArchetypeCategory, number>;
        /** Distribution by platform */
        platformDistribution: Record<PlatformArchitectureType, number>;
        /** Diversity score (0-1) */
        diversityScore: number;
    };
    /** Validation results */
    validationResults: {
        /** Overall validation status */
        isValid: boolean;
        /** Validation errors */
        errors: string[];
        /** Validation warnings */
        warnings: string[];
        /** Suggestions for improvement */
        suggestions: string[];
    };
    /** Generation metadata */
    metadata: {
        /** Generation timestamp */
        generatedAt: Date;
        /** Configuration used */
        configuration: ArchetypeGenerationConfig;
        /** Generation time in milliseconds */
        generationTime: number;
    };
}
/**
 * Archetype manager configuration
 */
export interface ArchetypeManagerConfig {
    /** Enable archetype system */
    enabled: boolean;
    /** Default generation configuration */
    defaultGeneration: ArchetypeGenerationConfig;
    /** Platform-specific overrides */
    platformOverrides: Record<PlatformArchitectureType, Partial<ArchetypeGenerationConfig>>;
    /** Domain-specific overrides */
    domainOverrides: Record<ContentDomainType, Partial<ArchetypeGenerationConfig>>;
    /** Caching configuration */
    caching: {
        /** Enable archetype caching */
        enabled: boolean;
        /** Cache TTL in seconds */
        ttl: number;
        /** Maximum cache size */
        maxSize: number;
    };
    /** Performance settings */
    performance: {
        /** Maximum concurrent generations */
        maxConcurrentGenerations: number;
        /** Generation timeout in milliseconds */
        generationTimeout: number;
        /** Enable performance monitoring */
        enableMonitoring: boolean;
    };
}
/**
 * Contextual behavior generation parameters
 */
export interface BehaviorContext {
    /** Temporal context */
    temporal: {
        season?: 'spring' | 'summer' | 'fall' | 'winter';
        dayOfWeek?: 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';
        timeOfDay?: 'morning' | 'afternoon' | 'evening' | 'night';
        timeZone?: string;
    };
    /** Platform context */
    platform: {
        architecture: PlatformArchitectureType;
        domain: ContentDomainType;
        deviceType?: 'mobile' | 'tablet' | 'desktop';
        connectionType?: 'slow' | 'medium' | 'fast';
    };
    /** Social context */
    social: {
        groupSize?: number;
        socialSetting?: 'private' | 'semi_private' | 'public';
        eventType?: 'casual' | 'formal' | 'celebration' | 'work';
    };
    /** Environmental context */
    environment: {
        location?: 'home' | 'office' | 'public' | 'outdoor' | 'travel';
        mood?: 'focused' | 'relaxed' | 'social' | 'productive';
        urgency?: 'low' | 'medium' | 'high' | 'urgent';
    };
}
/**
 * Contextual behavior response
 */
export interface ContextualBehaviorResponse {
    /** Behavior likelihood given context (0-1) */
    likelihood: number;
    /** Suggested actions */
    suggestedActions: {
        action: string;
        probability: number;
        context: string;
    }[];
    /** Content preferences for this context */
    contentPreferences: {
        types: string[];
        urgency: 'low' | 'medium' | 'high';
        quality: 'quick' | 'standard' | 'polished';
    };
    /** Social behavior adjustments */
    socialAdjustments: {
        collaborationWillingness: number;
        communicationStyle: 'brief' | 'detailed' | 'casual' | 'formal';
        responseTime: 'immediate' | 'quick' | 'standard' | 'delayed';
    };
}
/**
 * Archetype utilities and helper functions
 */
export interface ArchetypeUtils {
    /** Validate archetype consistency */
    validateArchetype(archetype: any): {
        valid: boolean;
        errors: string[];
    };
    /** Generate behavior for context */
    generateContextualBehavior(archetype: any, context: BehaviorContext): ContextualBehaviorResponse;
    /** Merge archetype configurations */
    mergeConfigurations(base: ArchetypeGenerationConfig, override: Partial<ArchetypeGenerationConfig>): ArchetypeGenerationConfig;
    /** Calculate diversity score */
    calculateDiversityScore(archetypes: any[]): number;
    /** Export archetype analysis */
    exportAnalysis(archetypes: any[]): string;
}
/**
 * Default archetype generation configuration
 */
export declare function createDefaultArchetypeConfig(): ArchetypeGenerationConfig;
/**
 * Archetype category utilities
 */
export declare const ArchetypeCategoryUtils: {
    /** Get all available categories */
    getAllCategories(): ArchetypeCategory[];
    /** Get category description */
    getCategoryDescription(category: ArchetypeCategory): string;
    /** Check if category is compatible with platform */
    isCategoryCompatible(category: ArchetypeCategory, platform: PlatformArchitectureType): boolean;
};
export default ArchetypeGenerationConfig;
//# sourceMappingURL=archetype-types.d.ts.map