import { EventEmitter } from '../../stencil-public-runtime';
type CloseEventTrigger = 'CLOSE_BUTTON' | 'ESCAPE_KEY' | 'BACKDROP' | 'PROGRAMMATIC';
export interface BeforeCloseEventDetail {
    trigger: CloseEventTrigger;
}
export declare class SpwModal {
    /** Indique si la modal est ouverte ou fermée, mutable et reflétée dans le DOM */
    opened?: boolean;
    showModal: boolean;
    /** Titre de la modal */
    caption: string;
    /** Texte du bouton de fermeture */
    closeButtonText: string;
    /** Indique si la fermeture de la modal est possible en cliquant sur l'overlay */
    closeOnOverlayClick: boolean;
    /** Rend les boutons en bas de la modal "collants" (toujours visibles) si vrai */
    stickyButtons: boolean;
    /** Événement déclenché lors de l'ouverture de la modal */
    spwModalOpen: EventEmitter;
    /** Événement déclenché lors de la fermeture de la modal */
    spwModalClose: EventEmitter;
    /** Définit la taille de la modal : 'small', 'medium', 'large' ou 'fluid' */
    size: 'small' | 'medium' | 'large' | 'fluid';
    /** Icône d'alerte à afficher dans la modal (référence font awesome) */
    alertIcon: string;
    hostElement: HTMLSpwModalElement;
    slotButtonsPresent: boolean;
    isCloseButtonSticky: boolean;
    /** Indique si le bouton de fermeture est visible */
    showCloseButton: boolean;
    private modalContainer;
    private modalContent;
    private focusableElements;
    private closeButton;
    /**
     * Méthode publique pour fermer la modal programmatiquement
     * @returns Promise qui se résout quand la modal est fermée
     */
    closeModal(): Promise<void>;
    /**
     * Méthode publique pour ouvrir la modal programmatiquement
     * @returns Promise qui se résout quand la modal est ouverte
     */
    openModal(): Promise<void>;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    private handleClick;
    private handleClose;
    private getFirstFocusableElement;
    private handleBottomFocus;
    private attemptFocus;
    private open;
    private close;
    private stopAllVideos;
    private handleKeypress;
    private doBeforeClose;
    openedChanged(newValue: boolean): void;
    private handleOverlayClick;
    private handleContentScroll;
    private get elementClass();
    render(): any;
}
export {};
