import { Resource } from "../../core";
import { Construct } from 'constructs';
import { IWidget } from './widget';
/**
 * (experimental) Specify the period for graphs when the CloudWatch dashboard loads.
 *
 * @experimental
 */
export declare enum PeriodOverride {
    /**
     * (experimental) Period of all graphs on the dashboard automatically adapt to the time range of the dashboard.
     *
     * @experimental
     */
    AUTO = "auto",
    /**
     * (experimental) Period set for each graph will be used.
     *
     * @experimental
     */
    INHERIT = "inherit"
}
/**
 * (experimental) Properties for defining a CloudWatch Dashboard.
 *
 * @experimental
 */
export interface DashboardProps {
    /**
     * (experimental) Name of the dashboard.
     *
     * If set, must only contain alphanumerics, dash (-) and underscore (_)
     *
     * @default - automatically generated name
     * @experimental
     */
    readonly dashboardName?: string;
    /**
     * (experimental) The start of the time range to use for each widget on the dashboard.
     *
     * You can specify start without specifying end to specify a relative time range that ends with the current time.
     * In this case, the value of start must begin with -P, and you can use M, H, D, W and M as abbreviations for
     * minutes, hours, days, weeks and months. For example, -PT8H shows the last 8 hours and -P3M shows the last three months.
     * You can also use start along with an end field, to specify an absolute time range.
     * When specifying an absolute time range, use the ISO 8601 format. For example, 2018-12-17T06:00:00.000Z.
     *
     * @default When the dashboard loads, the start time will be the default time range.
     * @experimental
     */
    readonly start?: string;
    /**
     * (experimental) The end of the time range to use for each widget on the dashboard when the dashboard loads.
     *
     * If you specify a value for end, you must also specify a value for start.
     * Specify an absolute time in the ISO 8601 format. For example, 2018-12-17T06:00:00.000Z.
     *
     * @default When the dashboard loads, the end date will be the current time.
     * @experimental
     */
    readonly end?: string;
    /**
     * (experimental) Use this field to specify the period for the graphs when the dashboard loads.
     *
     * Specifying `Auto` causes the period of all graphs on the dashboard to automatically adapt to the time range of the dashboard.
     * Specifying `Inherit` ensures that the period set for each graph is always obeyed.
     *
     * @default Auto
     * @experimental
     */
    readonly periodOverride?: PeriodOverride;
    /**
     * (experimental) Initial set of widgets on the dashboard.
     *
     * One array represents a row of widgets.
     *
     * @default - No widgets
     * @experimental
     */
    readonly widgets?: IWidget[][];
}
/**
 * (experimental) A CloudWatch dashboard.
 *
 * @experimental
 */
export declare class Dashboard extends Resource {
    private readonly rows;
    /**
     * @experimental
     */
    constructor(scope: Construct, id: string, props?: DashboardProps);
    /**
     * (experimental) Add a widget to the dashboard.
     *
     * Widgets given in multiple calls to add() will be laid out stacked on
     * top of each other.
     *
     * Multiple widgets added in the same call to add() will be laid out next
     * to each other.
     *
     * @experimental
     */
    addWidgets(...widgets: IWidget[]): void;
}
