/**
 * Widget Initialization, Lifecycle, and Loader Utilities
 *
 * Handles widget container creation, shadow DOM setup, mounting, lifecycle management,
 * and loader display. Consolidates all widget-related DOM manipulation and state management.
 */
import { type Root } from 'react-dom/client';
import type { MarketrixConfig } from '../types';
/**
 * Create widget container and shadow DOM
 * Returns the container element and shadow root
 * @param parentContainer - Optional parent container to mount within. If provided, shadow DOM will be created within this container.
 * @param containerId - Optional unique container ID. If not provided, a unique ID will be generated.
 */
export declare const createWidgetContainer: (parentContainer?: HTMLElement, containerId?: string) => {
    container: HTMLElement;
    shadowRoot: ShadowRoot;
    mountEl: HTMLElement;
};
/**
 * Mount widget component to the provided mount element
 * Returns the React root instance
 */
export declare const mountWidgetToContainer: (mountEl: HTMLElement, config: MarketrixConfig) => Root;
/**
 * Destroy widget container
 * @param container - Optional specific container to destroy. If not provided, searches for default container.
 */
export declare const destroyWidgetContainer: (container?: HTMLElement) => void;
/**
 * Get current widget instance
 */
export declare const getWidgetInstance: () => Root | null;
/**
 * Set widget instance
 */
export declare const setWidgetInstance: (instance: Root | null) => void;
/**
 * Get current configuration
 */
export declare const getCurrentConfig: () => MarketrixConfig | null;
/**
 * Set current configuration
 */
export declare const setCurrentConfig: (config: MarketrixConfig | null) => void;
/**
 * Check if widget is initialized
 */
export declare const isWidgetInitialized: () => boolean;
/**
 * Clear widget instance and config
 */
export declare const clearWidgetState: () => void;
/**
 * Show widget settings loader with optional message
 */
export declare const showWidgetSettingsLoader: (message?: string) => void;
/**
 * Hide widget settings loader
 */
export declare const hideWidgetSettingsLoader: () => void;
/**
 * Register the widget initialization function and set up auto-initialization
 *
 * This function:
 * 1. Stores the init function synchronously (no delays)
 * 2. Checks DOM ready state
 * 3. Either initializes immediately or waits for DOMContentLoaded
 * 4. Sets up persistence for bookmarklet usage
 *
 * @param initWidget - Function to initialize the widget (passed to avoid circular dependency)
 */
export declare const registerAutoInit: (initWidget: (config: MarketrixConfig) => Promise<void>) => void;
//# sourceMappingURL=bootstrap.d.ts.map