import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, TemplateRef } from '@angular/core';
import type { Components, ModalBreakpointChangeEventDetail, ModalDragEventDetail } from '@ionic/core/components';
import * as i0 from "@angular/core";
export declare interface IonModal extends Components.IonModal {
    /**
     * Emitted after the modal has presented.
     **/
    ionModalDidPresent: EventEmitter<CustomEvent>;
    /**
     * Emitted before the modal has presented.
     */
    ionModalWillPresent: EventEmitter<CustomEvent>;
    /**
     * Emitted before the modal has dismissed.
     */
    ionModalWillDismiss: EventEmitter<CustomEvent>;
    /**
     * Emitted after the modal has dismissed.
     */
    ionModalDidDismiss: EventEmitter<CustomEvent>;
    /**
     * Emitted after the modal breakpoint has changed.
     */
    ionBreakpointDidChange: EventEmitter<CustomEvent<ModalBreakpointChangeEventDetail>>;
    /**
     * Emitted when the sheet or card modal has started being dragged.
     */
    ionDragStart: EventEmitter<void>;
    /**
     * Emitted while the sheet or card modal is being dragged.
     */
    ionDragMove: EventEmitter<CustomEvent<ModalDragEventDetail>>;
    /**
     * Emitted when the sheet or card modal has finished being dragged.
     */
    ionDragEnd: EventEmitter<CustomEvent<ModalDragEventDetail>>;
    /**
     * Emitted after the modal has presented. Shorthand for ionModalDidPresent.
     */
    didPresent: EventEmitter<CustomEvent>;
    /**
     * Emitted before the modal has presented. Shorthand for ionModalWillPresent.
     */
    willPresent: EventEmitter<CustomEvent>;
    /**
     * Emitted before the modal has dismissed. Shorthand for ionModalWillDismiss.
     */
    willDismiss: EventEmitter<CustomEvent>;
    /**
     * Emitted after the modal has dismissed. Shorthand for ionModalDidDismiss.
     */
    didDismiss: EventEmitter<CustomEvent>;
}
export declare class IonModal {
    protected z: NgZone;
    template: TemplateRef<any>;
    isCmpOpen: boolean;
    protected el: HTMLElement;
    constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
    static ɵfac: i0.ɵɵFactoryDeclaration<IonModal, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IonModal, "ion-modal", never, { "animated": { "alias": "animated"; "required": false; }; "keepContentsMounted": { "alias": "keepContentsMounted"; "required": false; }; "backdropBreakpoint": { "alias": "backdropBreakpoint"; "required": false; }; "backdropDismiss": { "alias": "backdropDismiss"; "required": false; }; "breakpoints": { "alias": "breakpoints"; "required": false; }; "canDismiss": { "alias": "canDismiss"; "required": false; }; "cssClass": { "alias": "cssClass"; "required": false; }; "enterAnimation": { "alias": "enterAnimation"; "required": false; }; "expandToScroll": { "alias": "expandToScroll"; "required": false; }; "event": { "alias": "event"; "required": false; }; "focusTrap": { "alias": "focusTrap"; "required": false; }; "handle": { "alias": "handle"; "required": false; }; "handleBehavior": { "alias": "handleBehavior"; "required": false; }; "initialBreakpoint": { "alias": "initialBreakpoint"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "keyboardClose": { "alias": "keyboardClose"; "required": false; }; "leaveAnimation": { "alias": "leaveAnimation"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "presentingElement": { "alias": "presentingElement"; "required": false; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; }; "translucent": { "alias": "translucent"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; }, {}, ["template"], never, false, never>;
}
