import { EventEmitter } from '../../../stencil-public-runtime';
import type { PnLanguages } from "../../../index";
/**
 * Present content in a modal that overlays everything on the current page.
 * Use the prop `open` to toggle the visiblity.
 * Use the event `modalToggle` to determine when the modal is being closed/opened by the user.
 *
 * @slot - The default slot, will be placed in the middle content area.
 * @slot image - Place an image or illustration at the top of the modal. {@since v7.15.0}
 * @slot header - Place the title + lead text in the header. {@since v7.14.0}
 * @slot buttons - Place buttons inside the modal at the bottom.
 * pn-buttons aligns automatically to the right, set the data-left attribute on the button you want to align to the left.
 */
export declare class PnModal {
    private mo;
    private readonly standardAnimationDuration;
    private animationDuration;
    private modalTimeout;
    private modalElement;
    private modalContainer;
    private modalPicture;
    hostElement: HTMLElement;
    isClosing: boolean;
    isOpening: boolean;
    /** If true, the modal content will remove overflow CSS property. */
    removeOverflow: boolean;
    /** Set a label for the modal. @since v7.14.0 */
    label?: string;
    /** Set a descriptive text for the modal. @since v7.14.0 */
    helpertext?: string;
    /** Set the language. @since v7.14.0 */
    language?: PnLanguages;
    /** Bind to this property if you want to control the visibility of the modal from your own data. @category Features */
    open?: boolean;
    /**
     * Prevent users from closing the modal by clicking on the backdrop or the `ESC` key.
     * @since v7.14.0
     * @category Features
     */
    persistent?: boolean;
    /**
     * Hide the close button. If you disable this, make sure you build your own cancel button.
     * @since v7.14.0
     * @category Features
     */
    hideClose?: boolean;
    /**
     * Allow overflow if possible. When the modal opens, it will check scrollHeight > offsetHeight.
     * Do not use if you have a lot of conditional rendering inside the modal.
     * @since v7.14.0
     */
    allowOverflow?: boolean;
    /**
     * Use the `sheet` visual. Aligns the modal to the right.
     * @since v7.14.0
     * @category Visual
     */
    sheet?: boolean;
    /**
     * Define your own max width of the modal. Default is `45em`.
     * @category Visual
     * @since v7.14.0
     */
    maxWidth?: string;
    handleOpen(): void;
    handleMaxWidth(): void;
    handleOverflow(): void;
    /** This event is fired when the modal is toggled. {@since v7.14.0} */
    modalToggle: EventEmitter<{
        open: boolean;
    }>;
    /** This event is dispatched after the opening/closing animation has finished playing. {@since v7.14.0} */
    modalVisiblity: EventEmitter<{
        visible: boolean;
    }>;
    /**
     * Event fired when the modal is closed, either by clicking on the dark background or by clicking on the close button.
     * @deprecated Use the new `modalToggle` event instead.
     */
    close: EventEmitter<boolean>;
    connectedCallback(): void;
    disconnectedCallback(): void;
    componentWillLoad(): Promise<void>;
    componentDidLoad(): void;
    private translate;
    private showImage;
    private showHeader;
    private setOverflow;
    private hasOverflow;
    private isSameModal;
    private handleKeyboard;
    private clickModalBackground;
    private setModalClose;
    private closeModal;
    private openModal;
    private toggleOpen;
    render(): any;
}
