export interface GitInformation {
    isRepo: boolean;
    branch?: string;
    commitCount?: number;
    lastCommit?: string;
    hasChanges?: boolean;
    remoteUrl?: string;
}
export interface FileAnalysis {
    totalFiles: number;
    codeFiles: number;
    testFiles: number;
    configFiles: number;
    documentationFiles: number;
    extensions: Record<string, number>;
    directories: string[];
    complexity: 'simple' | 'medium' | 'large' | 'complex';
}
export interface ProjectStructure {
    hasTests: boolean;
    hasDocumentation: boolean;
    hasCI: boolean;
    hasContainerization: boolean;
    hasConfig: boolean;
    layered: boolean;
    monorepo: boolean;
    frameworks: string[];
    buildTools: string[];
}
export interface TechnologyStack {
    frontend: string[];
    backend: string[];
    database: string[];
    testing: string[];
    deployment: string[];
    security: string[];
    primaryLanguage: string;
    packageManager?: string;
}
export interface SecurityIndicators {
    hasAuth: boolean;
    hasEncryption: boolean;
    hasSecurityConfig: boolean;
    hasSecrets: boolean;
    vulnerablePatterns: string[];
    securityFrameworks: string[];
}
export interface PerformanceIndicators {
    hasCaching: boolean;
    hasOptimization: boolean;
    hasMonitoring: boolean;
    hasLoadTesting: boolean;
    bundleOptimization: boolean;
    performanceTools: string[];
}
export interface QualityIndicators {
    hasLinting: boolean;
    hasFormatting: boolean;
    hasTypeChecking: boolean;
    hasCodeCoverage: boolean;
    hasDocumentation: boolean;
    qualityTools: string[];
    codeQualityScore?: number;
}
export interface ProjectAnalysisContext {
    cwd: string;
    projectType: string;
    technologyStack: TechnologyStack;
    projectStructure: ProjectStructure;
    fileAnalysis: FileAnalysis;
    gitInfo: GitInformation;
    securityIndicators: SecurityIndicators;
    performanceIndicators: PerformanceIndicators;
    qualityIndicators: QualityIndicators;
    complexity: ProjectComplexity;
    recommendations: ContextRecommendation[];
    timestamp: string;
}
export interface ProjectComplexity {
    fileCount: number;
    directoryDepth: number;
    estimatedLOC: number;
    complexity: 'simple' | 'medium' | 'large' | 'complex';
    factors: string[];
}
export interface ContextRecommendation {
    persona: string;
    priority: 'low' | 'medium' | 'high';
    reason: string;
    confidence: number;
}
export interface InputContext {
    cwd: string;
    cleanedInput: string;
    flags?: ParsedFlags;
    learning?: LearningRecommendations;
    command?: string;
    projectType?: string;
    files?: string[];
    gitInfo?: GitInformation;
    timestamp?: string;
    projectAnalysis?: ProjectAnalysisContext;
}
export interface ParsedFlags {
    originalInput: string;
    cleanedInput: string;
    hasFlags: boolean;
    personas: {
        manual: string[];
        with: string[];
        focus: string[];
    };
    modes: {
        comprehensive: boolean;
        singlePersona: boolean;
        noCollaboration: boolean;
        learn: boolean | null;
    };
    focusAreas: string[];
    confidence: {
        override: number | null;
        threshold: number | null;
    };
}
export interface LearningRecommendations {
    personas: string[];
    reasoning: string[];
    adaptations: LearningAdaptation[];
    confidence: number;
    patterns: string[];
}
export interface LearningAdaptation {
    type: 'persona_selection' | 'collaboration' | 'confidence_threshold';
    reason: string;
    impact: number;
    confidence: number;
}
export interface FlagValidationResult {
    isValid: boolean;
    errors: string[];
    warnings: string[];
    suggestions: string[];
}
export interface ActivationInstructions {
    mode: 'manual' | 'automatic' | 'error';
    strategy: string;
    personas: {
        required: string[];
        preferred: string[];
        focus: string[];
    };
    collaboration: {
        enabled: boolean;
        comprehensive: boolean;
        singleLeader: boolean;
    };
    learning: {
        enabled: boolean | null;
        adaptive: boolean;
    };
    validation: FlagValidationResult;
    errors?: string[];
    fallback?: string;
}
//# sourceMappingURL=context.d.ts.map