import A11yDialog from "a11y-dialog";
interface ModalConfig {
    /** Class which indicates that modal is open */
    classModalIsOpen: string;
    /** Class on body which indicates that modal is open */
    classModalIsOpenBody: string;
    /** Root of page content which should be hidden when modal is open */
    root: string;
    /** Move modal into this element selector (must be unique in DOM) */
    modalsRoot: string;
    /** Disable moving modal to #root-modals (for React controlled mode) */
    disablePortal?: boolean;
}
interface HTMLElementWithModal extends HTMLElement {
    ODS_Modal?: Modal;
}
export default class Modal {
    element: HTMLElementWithModal;
    config: ModalConfig;
    instance: A11yDialog;
    constructor(element: HTMLElement, config?: Partial<ModalConfig>);
    static getInstance(el: HTMLElement | null): Modal | null;
    handleShow(el: HTMLElement): void;
    handleHide(el: HTMLElement): void;
    show(): void;
    hide(): void;
    headerFirstItemSpacing(): void;
    init(): void;
    destroy(): void;
    update(): void;
    static moveToModalRoot(el: HTMLElement, container: Element | null): void;
    private static isLocked;
    private static resolveBodyLockClassName;
    static lockBody(className?: string, root?: string): void;
    static unlockBody(className?: string, root?: string): void;
}
export {};
