import { GraphWidget, HorizontalAnnotation, IWidget } from "aws-cdk-lib/aws-cloudwatch";
import { TargetType } from "aws-cdk-lib/aws-elasticloadbalancingv2";
import { NetworkLoadBalancerMetricFactory, NetworkLoadBalancerMetricFactoryProps } from "./NetworkLoadBalancerMetricFactory";
import { BaseMonitoringProps, HealthyTaskCountThreshold, HealthyTaskPercentThreshold, MetricWithAlarmSupport, MinProcessedBytesThreshold, Monitoring, MonitoringScope, TaskHealthAlarmFactory, ThroughputAlarmFactory, UnhealthyTaskCountThreshold } from "../../common";
import { MonitoringHeaderWidget } from "../../dashboard";
export interface NetworkLoadBalancerMonitoringProps extends NetworkLoadBalancerMetricFactoryProps, BaseMonitoringProps {
    readonly addHealthyTaskCountAlarm?: Record<string, HealthyTaskCountThreshold>;
    readonly addUnhealthyTaskCountAlarm?: Record<string, UnhealthyTaskCountThreshold>;
    readonly addHealthyTaskPercentAlarm?: Record<string, HealthyTaskPercentThreshold>;
    readonly addMinProcessedBytesAlarm?: Record<string, MinProcessedBytesThreshold>;
}
export declare class NetworkLoadBalancerMonitoring extends Monitoring {
    protected readonly humanReadableName: string;
    protected readonly metricFactory: NetworkLoadBalancerMetricFactory;
    protected readonly networkLoadBalancerTargetType?: TargetType;
    protected readonly taskHealthAlarmFactory: TaskHealthAlarmFactory;
    protected readonly throughputAlarmFactory: ThroughputAlarmFactory;
    protected readonly taskHealthAnnotations: HorizontalAnnotation[];
    protected readonly processedBytesAnnotations: HorizontalAnnotation[];
    protected readonly healthyTaskCountMetric: MetricWithAlarmSupport;
    protected readonly unhealthyTaskCountMetric: MetricWithAlarmSupport;
    protected readonly healthyTaskPercentMetric: MetricWithAlarmSupport;
    protected readonly activeTcpFlowCountMetric: MetricWithAlarmSupport;
    protected readonly newTcpFlowCountMetric: MetricWithAlarmSupport;
    protected readonly unhealthyRoutingFlowCountMetric: MetricWithAlarmSupport;
    protected readonly processedBytesMetric: MetricWithAlarmSupport;
    protected readonly clientResetCountMetric: MetricWithAlarmSupport;
    protected readonly targetResetCountMetric: MetricWithAlarmSupport;
    protected readonly elbResetCountMetric: MetricWithAlarmSupport;
    constructor(scope: MonitoringScope, props: NetworkLoadBalancerMonitoringProps);
    summaryWidgets(): IWidget[];
    widgets(): IWidget[];
    protected createTitleWidget(): MonitoringHeaderWidget;
    protected createTaskHealthWidget(width: number, height: number): GraphWidget;
    protected createTcpFlowsWidget(width: number, height: number): GraphWidget;
    protected createTcpResetCountsWidget(width: number, height: number): GraphWidget;
    /**
     * @see https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html
     */
    protected get isTaskHealthSupported(): boolean;
}
