import { ChangeDetectorRef, ElementRef, NgZone, EventEmitter } from '@angular/core';
import type { Components } from '@ionic/core/components';
import type { IonAlertCustomEvent } from '@ionic/core/components';
import type { OverlayEventDetail as IIonAlertOverlayEventDetail } from '@ionic/core/components';
import * as i0 from "@angular/core";
export declare class IonAlert {
    protected z: NgZone;
    protected el: HTMLIonAlertElement;
    ionAlertDidPresent: EventEmitter<IonAlertCustomEvent<void>>;
    ionAlertWillPresent: EventEmitter<IonAlertCustomEvent<void>>;
    ionAlertWillDismiss: EventEmitter<IonAlertCustomEvent<IIonAlertOverlayEventDetail<any>>>;
    ionAlertDidDismiss: EventEmitter<IonAlertCustomEvent<IIonAlertOverlayEventDetail<any>>>;
    didPresent: EventEmitter<IonAlertCustomEvent<void>>;
    willPresent: EventEmitter<IonAlertCustomEvent<void>>;
    willDismiss: EventEmitter<IonAlertCustomEvent<IIonAlertOverlayEventDetail<any>>>;
    didDismiss: EventEmitter<IonAlertCustomEvent<IIonAlertOverlayEventDetail<any>>>;
    constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
    static ɵfac: i0.ɵɵFactoryDeclaration<IonAlert, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IonAlert, "ion-alert", never, { "animated": { "alias": "animated"; "required": false; }; "backdropDismiss": { "alias": "backdropDismiss"; "required": false; }; "buttons": { "alias": "buttons"; "required": false; }; "cssClass": { "alias": "cssClass"; "required": false; }; "enterAnimation": { "alias": "enterAnimation"; "required": false; }; "header": { "alias": "header"; "required": false; }; "htmlAttributes": { "alias": "htmlAttributes"; "required": false; }; "inputs": { "alias": "inputs"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "keyboardClose": { "alias": "keyboardClose"; "required": false; }; "leaveAnimation": { "alias": "leaveAnimation"; "required": false; }; "message": { "alias": "message"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "subHeader": { "alias": "subHeader"; "required": false; }; "translucent": { "alias": "translucent"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; }, { "ionAlertDidPresent": "ionAlertDidPresent"; "ionAlertWillPresent": "ionAlertWillPresent"; "ionAlertWillDismiss": "ionAlertWillDismiss"; "ionAlertDidDismiss": "ionAlertDidDismiss"; "didPresent": "didPresent"; "willPresent": "willPresent"; "willDismiss": "willDismiss"; "didDismiss": "didDismiss"; }, never, ["*"], true, never>;
}
export declare interface IonAlert extends Components.IonAlert {
    /**
     * Emitted after the alert has presented.
     */
    ionAlertDidPresent: EventEmitter<IonAlertCustomEvent<void>>;
    /**
     * Emitted before the alert has presented.
     */
    ionAlertWillPresent: EventEmitter<IonAlertCustomEvent<void>>;
    /**
     * Emitted before the alert has dismissed.
     */
    ionAlertWillDismiss: EventEmitter<IonAlertCustomEvent<IIonAlertOverlayEventDetail>>;
    /**
     * Emitted after the alert has dismissed.
     */
    ionAlertDidDismiss: EventEmitter<IonAlertCustomEvent<IIonAlertOverlayEventDetail>>;
    /**
     * Emitted after the alert has presented.
  Shorthand for ionAlertWillDismiss.
     */
    didPresent: EventEmitter<IonAlertCustomEvent<void>>;
    /**
     * Emitted before the alert has presented.
  Shorthand for ionAlertWillPresent.
     */
    willPresent: EventEmitter<IonAlertCustomEvent<void>>;
    /**
     * Emitted before the alert has dismissed.
  Shorthand for ionAlertWillDismiss.
     */
    willDismiss: EventEmitter<IonAlertCustomEvent<IIonAlertOverlayEventDetail>>;
    /**
     * Emitted after the alert has dismissed.
  Shorthand for ionAlertDidDismiss.
     */
    didDismiss: EventEmitter<IonAlertCustomEvent<IIonAlertOverlayEventDetail>>;
}
