import { BaseAgent } from '../core/base-agent.js';
import { AgentId, AgentMetadata, AgentRegistry, AgentCommunicationChannel, AgentLogger, AgentMetrics, AgentRequest, AgentContext, AgentHealth } from '../types/agent.js';
export interface CredentialAnalysisRequest {
    caseId: string;
    usernames?: string[];
    passwords?: string[];
    hashes?: string[];
    domains?: string[];
    ipAddresses?: string[];
    timeRange?: {
        start: string;
        end: string;
    };
    options?: {
        checkBreaches?: boolean;
        analyzePatterns?: boolean;
        checkComplexity?: boolean;
        crossReference?: boolean;
        generateReport?: boolean;
    };
}
export interface CredentialFinding {
    id: string;
    type: 'compromised_credential' | 'weak_password' | 'reused_password' | 'suspicious_login' | 'breach_exposure';
    severity: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
    confidence: number;
    username?: string;
    domain?: string;
    description: string;
    evidence: string[];
    recommendations: string[];
    mitre: {
        tactics: string[];
        techniques: string[];
    };
    breach?: {
        source: string;
        date: string;
        dataTypes: string[];
    };
    patterns?: {
        commonPasswords: boolean;
        dictionaryWords: boolean;
        personalInfo: boolean;
        repeatingChars: boolean;
    };
}
export interface CredentialAnalysisResult {
    caseId: string;
    analysisId: string;
    timestamp: string;
    summary: {
        totalCredentials: number;
        compromisedCount: number;
        weakPasswords: number;
        breachExposures: number;
        riskScore: number;
        severity: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
        status: 'ANALYZED' | 'FAILED' | 'PARTIAL';
    };
    findings: CredentialFinding[];
    patterns: {
        commonDomains: Array<{
            domain: string;
            count: number;
        }>;
        passwordPatterns: Array<{
            pattern: string;
            count: number;
            risk: string;
        }>;
        timeDistribution: Array<{
            hour: number;
            count: number;
        }>;
        geographicDistribution: Array<{
            country: string;
            count: number;
        }>;
    };
    recommendations: Array<{
        id: string;
        priority: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
        category: string;
        description: string;
        rationale: string;
        actions: string[];
        impact: string;
        effort: string;
    }>;
    metadata: {
        analysisTime: string;
        dataPoints: number;
        rulesApplied: string[];
        breachSources: string[];
    };
}
export declare class CredentialAnalysisAgent extends BaseAgent {
    protected readonly agentId: AgentId;
    private accessToken;
    private tokenExpiresAt;
    private readonly config;
    constructor(metadata: AgentMetadata, registry: AgentRegistry, channel: AgentCommunicationChannel, logger: AgentLogger, metrics: AgentMetrics, config: any);
    getAgentId(): AgentId;
    protected performHealthCheck(): Promise<boolean>;
    private performTokenRefresh;
    analyzeCredentials(request: CredentialAnalysisRequest): Promise<CredentialAnalysisResult>;
    private getAuthenticationEvents;
    private analyzeAuthenticationEvents;
    private analyzeUsernames;
    private analyzePasswords;
    private checkBreachExposures;
    private analyzePasswordStrength;
    private containsPersonalInfo;
    private isEmailFormat;
    private analyzeCredentialPatterns;
    private extractDomainPatterns;
    private extractPasswordPatterns;
    private extractTimePatterns;
    private extractGeoPatterns;
    private generateRecommendations;
    private calculateCredentialRiskScore;
    private determineSeverity;
    protected onInitialize(): Promise<void>;
    protected onStart(): Promise<void>;
    protected onStop(): Promise<void>;
    protected onDestroy(): Promise<void>;
    protected onHealthCheck(): Promise<AgentHealth>;
    protected handleRequest(request: AgentRequest, context: AgentContext): Promise<any>;
}
//# sourceMappingURL=credential-agent.d.ts.map