import type { HorizontalAnnotation, IWidget } from "aws-cdk-lib/aws-cloudwatch";
import type { OpenSearchIngestionPipelineMetricFactoryProps } from "./OpenSearchIngestionPipelineMetricFactory";
import { BaseMonitoringProps, MaxUsageCountThreshold, MetricWithAlarmSupport, Monitoring, AlarmFactory, UsageAlarmFactory, MonitoringScope } from "../../common";
export interface OpenSearchIngestionPipelineMonitoringOptions extends BaseMonitoringProps {
    readonly addMaxDlqS3CountAlarm?: Record<string, MaxUsageCountThreshold>;
}
export interface OpenSearchIngestionPipelineMonitoringProps extends OpenSearchIngestionPipelineMetricFactoryProps, OpenSearchIngestionPipelineMonitoringOptions {
}
/**
 * @experimental This is subject to change if an L2 construct becomes available.
 */
export declare class OpenSearchIngestionPipelineMonitoring extends Monitoring {
    readonly title: string;
    readonly pipelineUrl?: string;
    readonly metricSinkRecordsInCount: MetricWithAlarmSupport;
    readonly metricSourceBytesReceivedSum: MetricWithAlarmSupport;
    readonly metricSinkBulkRequestLatencyMax: MetricWithAlarmSupport;
    readonly metricSinkBulkPipelineLatencyMax: MetricWithAlarmSupport;
    readonly metricDlqS3RecordsCount: MetricWithAlarmSupport;
    readonly alarmFactory: AlarmFactory;
    readonly usageAlarmFactory: UsageAlarmFactory;
    readonly usageAnnotations: HorizontalAnnotation[];
    constructor(scope: MonitoringScope, props: OpenSearchIngestionPipelineMonitoringProps);
    summaryWidgets(): IWidget[];
    widgets(): IWidget[];
    protected createTitleWidget(): IWidget;
    protected createLatencyWidget(width: number, height: number): IWidget;
    protected createIncomingDataWidget(width: number, height: number): IWidget;
    protected createDlqS3Widget(width: number, height: number): IWidget;
}
