import type { Construct } from 'constructs';
import type { IAlarm } from './alarm-base';
import { AlarmBase } from './alarm-base';
import type { Duration } from '../../core';
/**
 * Properties for creating a PromQL Alarm.
 */
export interface PromQLAlarmProps {
    /**
     * Name of the alarm.
     *
     * @default - Automatically generated name
     */
    readonly alarmName?: string;
    /**
     * Description for the alarm.
     *
     * @default - No description
     */
    readonly alarmDescription?: string;
    /**
     * The duration that a contributor must continuously breach before the contributor transitions to ALARM state.
     *
     * @default - No pending period
     */
    readonly pendingPeriod?: Duration;
    /**
     * The duration that a contributor must continuously not be breaching before it transitions back to the OK state.
     *
     * @default - No recovery period
     */
    readonly recoveryPeriod?: Duration;
    /**
     * The PromQL query that the alarm evaluates.
     */
    readonly query: string;
    /**
     * The frequency at which the alarm is evaluated.
     *
     * Must be between 10 seconds and 3600 seconds.
     */
    readonly evaluationInterval: Duration;
    /**
     * Whether the actions for this alarm are enabled.
     *
     * @default true
     */
    readonly actionsEnabled?: boolean;
}
/**
 * A CloudWatch Alarm based on a PromQL query expression.
 * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/alarm-promql.html
 * @resource AWS::CloudWatch::Alarm
 */
export declare class PromQLAlarm extends AlarmBase {
    /** Uniquely identifies this class. */
    static readonly PROPERTY_INJECTION_ID: string;
    /**
     * Import an existing CloudWatch alarm provided an ARN.
     */
    static fromPromQLAlarmArn(scope: Construct, id: string, alarmArn: string): IAlarm;
    /**
     * Import an existing CloudWatch alarm provided a Name.
     */
    static fromPromQLAlarmName(scope: Construct, id: string, alarmName: string): IAlarm;
    private readonly alarm;
    constructor(scope: Construct, id: string, props: PromQLAlarmProps);
    /**
     * ARN of this alarm.
     *
     * @attribute
     */
    get alarmArn(): string;
    /**
     * Name of this alarm.
     *
     * @attribute
     */
    get alarmName(): string;
}
