import { Alarm, AlarmProps, IAlarmAction } from "aws-cdk-lib/aws-cloudwatch";
import { ITopic } from "aws-cdk-lib/aws-sns";
import { Construct } from "constructs";
/**
 * Extra options for ExtendedAlarmProps
 */
export interface ExtendedCreateAlarmOptions {
    /**
     * Topics to notify if alarm is breached.
     */
    readonly alarmTopics?: ITopic[];
    /**
     * Topics to notify when alarm returns to an ok status.
     */
    readonly okTopics?: ITopic[];
    /**
     * Topics to notify when alarm has insufficient data.
     */
    readonly insufficientDataTopic?: ITopic[];
    /**
     * Actions to trigger when alarm is breached.
     */
    readonly alarmActions?: IAlarmAction[];
    /**
     * Actions to take when alarm returns to an ok status.
     */
    readonly okActions?: IAlarmAction[];
    /**
     * Actions to take when an alarm has insufficient data.
     */
    readonly insufficientDataActions?: IAlarmAction[];
}
/**
 * Properties for ExtendedAlarm
 */
export interface ExtendedAlarmProps extends ExtendedCreateAlarmOptions, AlarmProps {
}
/**
 * Adds convenience properties and methods to Alarm.
 */
export declare class ExtendedAlarm extends Alarm {
    constructor(scope: Construct, id: string, props: ExtendedAlarmProps);
    /**
     * Convenience method for adding SNS topics as alarm actions.
     *
     * @param topics the topics to notify
     */
    addAlarmTopic(...topics: ITopic[]): void;
    /**
     * Convenience method for adding SNS topics as ok actions.
     *
     * @param topics the topics to notify
     */
    addOkTopic(...topics: ITopic[]): void;
    /**
     * Convenience method for adding SNS topics as insufficient data actions.
     *
     * @param topics the topics to notify
     */
    addInsufficientDataTopic(...topics: ITopic[]): void;
}
