import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
import { ResourceData, MJCommunicationLogEntity } from '@memberjunction/core-entities';
import { BaseResourceComponent } from '@memberjunction/ng-shared';
import * as i0 from "@angular/core";
interface ProviderHealth {
    Name: string;
    Type: string;
    SentCount: number;
    SuccessRate: number;
    IsActive: boolean;
    IconClass: string;
    ColorClass: string;
}
interface ChannelBreakdown {
    Name: string;
    IconClass: string;
    Count: number;
    Percentage: number;
    ColorClass: string;
}
interface HourlyBucket {
    timestamp: Date;
    executions: number;
    errors: number;
    cost: number;
    tokens: number;
    avgTime: number;
}
export declare class CommunicationMonitorResourceComponent extends BaseResourceComponent implements OnInit, OnDestroy {
    private cdr;
    isLoading: boolean;
    stats: {
        totalSent: number;
        deliveryRate: number;
        pending: number;
        failed: number;
    };
    recentLogs: MJCommunicationLogEntity[];
    chartData: HourlyBucket[];
    chartConfig: {
        useDualAxis: boolean;
        showGrid: boolean;
        showTooltip: boolean;
        colors: string[];
    };
    providerHealth: ProviderHealth[];
    channelBreakdown: ChannelBreakdown[];
    constructor(cdr: ChangeDetectorRef);
    ngOnInit(): Promise<void>;
    ngOnDestroy(): void;
    loadData(): Promise<void>;
    getActivityIconClass(log: MJCommunicationLogEntity): string;
    getActivityIcon(log: MJCommunicationLogEntity): string;
    getHealthClass(rate: number): string;
    private processTrendData;
    private buildProviderHealth;
    private buildChannelBreakdown;
    private getProviderType;
    private getProviderIconClass;
    private getProviderColorClass;
    GetResourceDisplayName(data: ResourceData): Promise<string>;
    GetResourceIconClass(data: ResourceData): Promise<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<CommunicationMonitorResourceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CommunicationMonitorResourceComponent, "mj-communication-monitor-resource", never, {}, {}, never, never, false, never>;
}
export {};
//# sourceMappingURL=communication-monitor-resource.component.d.ts.map