import type { PreviewContent } from "./message-types";
type UsePreviewPresenterResult = {
    /**
     * The preview content data received from the parent, or null if not yet loaded
     */
    data: PreviewContent | null;
    /**
     * Whether the preview should render in mobile mode (from data-mobile attribute)
     */
    isMobile: boolean;
    /**
     * Whether to show the lint gutter (from data-lint-gutter attribute)
     */
    hasLintGutter: boolean;
    /**
     * Function to report the current height of the iframe content to the parent
     */
    reportHeight: (height: number) => void;
};
/**
 * Hook for preview iframe to receive data from parent and send updates back.
 *
 * This hook:
 * - Reads iframe configuration from dataset attributes (id, mobile, lintGutter)
 * - Listens for content data from the parent window via postMessage
 * - Requests initial data on mount
 * - Provides functions to report height and lint warnings back to parent
 *
 * @example
 * ```tsx
 * function PreviewPage() {
 *   const { data, isMobile, reportHeight } = usePreviewPresenter();
 *
 *   React.useEffect(() => {
 *     if (containerRef.current) {
 *       reportHeight(containerRef.current.scrollHeight);
 *     }
 *   }, [data, reportHeight]);
 *
 *   if (!data) return <div>Loading...</div>;
 *   return <PreviewRenderer
 *       ref={containerRef}
 *       data={data}
 *       isMobile={isMobile}
 *   />;
 * }
 * ```
 */
export declare function usePreviewPresenter(): UsePreviewPresenterResult;
export {};
