import { IDistribution } from 'aws-cdk-lib/aws-cloudfront';
import { IFunction } from 'aws-cdk-lib/aws-lambda';
import { IQueue } from 'aws-cdk-lib/aws-sqs';
import { Construct } from 'constructs';
import { IOverviewDashboard } from './api';
import { Inventory } from '../backend/inventory';
/**
 * Properties for OverviewDashboard
 */
export interface OverviewDashboardProps {
    readonly lambdaServiceAlarmThreshold?: number;
    readonly dashboardName?: string;
}
/**
 * Construct hub overview
 *
 * This construct generates a dashboard to provide Overview of the Construct Hub operation
 * The dashboard includes details like DLQ, CloudFront errors and Lambda Service Quota
 *
 * Components should use the APIs of this module to add widgets to overview dashboard
 */
export declare class OverviewDashboard extends Construct implements IOverviewDashboard {
    private static mLambdaUsage;
    private static mLambdaQuota;
    private readonly dashboard;
    private queueMetricWidget?;
    private cloudFrontMetricWidget?;
    private readonly lambdaServiceLimitGraph;
    private readonly lambdaServiceAlarmThreshold;
    private metricCount;
    constructor(scope: Construct, id: string, props?: OverviewDashboardProps);
    /**
     * Adds a metric widget to the Overview dashboard showing the total number concurrent executions
     * of a Lambda function and the percentage of SERVICE_QUOTA utilized by the function. This can be
     * used to see which function has the most impact of the service quota.
     * @param fn Lambda function to be monitored
     */
    addConcurrentExecutionMetricToDashboard(fn: IFunction, name?: string): void;
    /**
     * Adds widgets to Overview dashboard with link to the dashboard and number of visible messages.
     * @param name of the DLQ that will be used in the dashboard
     * @param deadLetterQueue Dead Letter Queue to be used in the dashboard
     * @param reDriveFunction a lambda function that will be used to re-drive the DLQ
     */
    addDLQMetricToDashboard(name: string, deadLetterQueue: IQueue, reDriveFunction?: IFunction): void;
    /**
     *  Adds a widget to the Overview dashboard showing the number of requests to CloudFront
     */
    addDistributionMetricToDashboard(distribution: IDistribution): void;
    private addCloudFrontMetricWidget;
    private addLambdaServiceQuotaWidgetToDashboard;
    addInventoryMetrics(inventory: Inventory): void;
}
