import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
import { ResourceData, MJAuditLogEntity } from '@memberjunction/core-entities';
import { BaseResourceComponent } from '@memberjunction/ng-shared';
import * as i0 from "@angular/core";
interface AuditLogWithDetails extends MJAuditLogEntity {
    parsedDetails?: ParsedDetails;
}
interface ParsedDetails {
    operation?: string;
    subsystem?: string;
    credentialType?: string;
    credentialId?: string;
    ipAddress?: string;
    userAgent?: string;
    duration?: number;
    errorMessage?: string;
}
interface TimelineGroup {
    date: string;
    displayDate: string;
    logs: AuditLogWithDetails[];
}
export declare class CredentialsAuditResourceComponent extends BaseResourceComponent implements OnInit, OnDestroy {
    private cdr;
    isLoading: boolean;
    auditLogs: AuditLogWithDetails[];
    filteredLogs: AuditLogWithDetails[];
    timelineGroups: TimelineGroup[];
    selectedStatus: string;
    selectedOperation: string;
    dateRange: string;
    searchText: string;
    viewMode: 'table' | 'timeline';
    expandedLogId: string | null;
    hourlyData: {
        hour: string;
        success: number;
        failed: number;
    }[];
    operationCounts: Map<string, number>;
    constructor(cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    GetResourceDisplayName(data: ResourceData): Promise<string>;
    GetResourceIconClass(data: ResourceData): Promise<string>;
    private loadData;
    private parseAllDetails;
    private parseDetails;
    onStatusFilterChange(status: string): void;
    onOperationFilterChange(operation: string): void;
    onDateRangeChange(days: string): void;
    onSearchChange(value: string): void;
    clearSearch(): void;
    setViewMode(mode: 'table' | 'timeline'): void;
    toggleLogExpand(logId: string): void;
    applyFilters(): void;
    private buildTimelineGroups;
    private formatGroupDate;
    private buildChartData;
    getMaxHourlyCount(): number;
    getOperationList(): string[];
    getStatusClass(status: string): string;
    getOperationType(log: AuditLogWithDetails): string;
    getSubsystem(log: AuditLogWithDetails): string;
    getOperationIcon(operation: string): string;
    getOperationColor(operation: string): string;
    formatDate(date: Date | string | null): string;
    formatTime(date: Date | string | null): string;
    formatDuration(ms: number | undefined): string;
    refresh(): void;
    getSuccessCount(): number;
    getFailedCount(): number;
    getSuccessRate(): number;
    getUniqueUserCount(): number;
    exportToCSV(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CredentialsAuditResourceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CredentialsAuditResourceComponent, "mj-credentials-audit-resource", never, {}, {}, never, never, false, never>;
}
export {};
//# sourceMappingURL=credentials-audit-resource.component.d.ts.map