import React from 'react';
export declare const MODAL_GALLERY_SLOT_ID = "ov25-modal-gallery-slot";
export interface ConfiguratorModalProps {
    isOpen: boolean;
    onClose: () => void;
    /** Ignored when useGallerySlot is true. */
    children?: React.ReactNode;
    /** Empty gallery slot; useIframePositioning moves the preloaded iframe here. */
    useGallerySlot?: boolean;
    /** Snapshot shown in the slot while the backdrop fades in; iframe mounts after `onModalShellOpeningComplete`. */
    galleryOpeningBitmap?: ImageBitmap | null;
    /** When true, the bitmap layer is hidden so the repositioned iframe can cover the slot. */
    suppressGalleryOpeningBitmap?: boolean;
    /** Fires when the modal backdrop has finished opening (opacity in). Parent then enables iframe positioning. */
    onModalShellOpeningComplete?: () => void;
    /**
     * When true (deferred preload gallery, no opening bitmap), notify shell ready after layout (~2 rAF) instead of
     * waiting for opacity transitionend / fallback timer so the iframe tracks the modal open on mobile.
     */
    earlyShellReadyForDeferredGallery?: boolean;
}
export declare const ConfiguratorModal: React.FC<ConfiguratorModalProps>;
