import { AuthenticationSource, AuthenticationSourceType } from '../types/auth-source.types';
import { AuthenticationProvider } from '../types/auth-source.types';
export interface AuthDiagnosticResult {
    status: 'success' | 'warning' | 'error';
    summary: string;
    details: {
        sources: AuthenticationSource[];
        selectedSource?: AuthenticationSource;
        issues: AuthDiagnosticIssue[];
        recommendations: string[];
    };
    verbose?: {
        timeline: AuthDiagnosticEvent[];
        environment: Record<string, any>;
        configuration: Record<string, any>;
    };
}
export interface AuthDiagnosticIssue {
    severity: 'error' | 'warning' | 'info';
    type: string;
    message: string;
    source?: AuthenticationSourceType;
    suggestions: string[];
}
export interface AuthDiagnosticEvent {
    timestamp: Date;
    type: 'source_detected' | 'source_validated' | 'source_selected' | 'error' | 'warning';
    message: string;
    source?: AuthenticationSourceType;
    data?: Record<string, any>;
}
export declare class AuthDiagnostics {
    private authProvider;
    private events;
    constructor(authProvider: AuthenticationProvider);
    runDiagnostics(options?: Record<string, unknown>, includeVerbose?: boolean): AuthDiagnosticResult;
    generateReport(options?: Record<string, unknown>, includeVerbose?: boolean): string;
    private logEvent;
    private analyzeSelectedSource;
    private analyzeNoAuthenticationFound;
    private analyzeAvailableSources;
    private determineOverallStatus;
    private generateSummary;
    private getEnvironmentInfo;
    private getConfigurationInfo;
}
//# sourceMappingURL=auth-diagnostics.d.ts.map