import { PersonaConfig, CollaborationPattern } from './personas.js';
export interface BuddyConfig {
    personas: Record<string, PersonaConfig>;
    activation: ActivationConfig;
    collaboration_matrix?: Record<string, CollaborationPattern>;
    validation_chain?: ValidationChainConfig;
}
export interface ActivationConfig {
    confidence_threshold: number;
    max_active_personas: number;
    collaboration_enabled: boolean;
}
export interface ValidationChainConfig {
    security_validation?: string[];
    quality_validation?: string[];
    performance_validation?: string[];
}
export interface HookConfig {
    type: 'command';
    command: string;
    description: string;
    enabled: boolean;
    timeout: number;
}
export interface HookMatcher {
    matcher: string;
    hooks: HookConfig[];
}
export interface HooksConfig {
    hooks: {
        PreToolUse?: HookMatcher[];
        PostToolUse?: HookMatcher[];
        UserPromptSubmit?: HookMatcher[];
        Notification?: HookMatcher[];
        Stop?: HookMatcher[];
        SubagentStop?: HookMatcher[];
        PreCompact?: HookMatcher[];
    };
}
export interface LearningConfig {
    enabled: boolean;
    adaptationRate: number;
    memoryRetention: number;
    feedbackWeight: number;
    patternThreshold: number;
}
export interface AutoActivationEngineConfig {
    keywordWeight: number;
    contextWeight: number;
    filePatternWeight: number;
    historyWeight: number;
    confidenceThreshold: number;
}
export interface PerformanceConfig {
    cacheEnabled: boolean;
    cacheTTL: number;
    maxCacheSize: number;
    lazyLoading: boolean;
    batchSize: number;
}
export interface LoggingConfig {
    level: 'debug' | 'info' | 'warn' | 'error';
    enableFileLogging: boolean;
    logDirectory: string;
    maxLogSize: number;
    logRotation: boolean;
}
export interface SecurityConfig {
    enableValidation: boolean;
    allowedFileTypes: string[];
    blockedPatterns: string[];
    maxInputLength: number;
    sanitizeInput: boolean;
}
export interface SystemConfig {
    buddy: BuddyConfig;
    hooks?: HooksConfig;
    learning?: LearningConfig;
    autoActivation?: AutoActivationEngineConfig;
    performance?: PerformanceConfig;
    logging?: LoggingConfig;
    security?: SecurityConfig;
}
export interface ConfigValidationResult {
    isValid: boolean;
    errors: string[];
    warnings: string[];
    suggestions: string[];
}
export interface ConfigSource {
    path: string;
    type: 'file' | 'environment' | 'default';
    lastModified?: Date;
    checksum?: string;
}
//# sourceMappingURL=config.d.ts.map