import type { Config, Data, Plugin } from "@puckeditor/core"; import { type ReactNode } from "react"; interface PreviewResolvedState { data: Data | null; loading: boolean; } declare function useResolvedPreviewState(): PreviewResolvedState; declare function mergeRootForPreview(props: Record, resolved: Data | null, loading: boolean): Record; declare function mergeBlockForPreview(props: Record, resolved: Data | null, loading: boolean): Record; /** * Hands `children` a config whose `` resolves `data` on `branchId` * instead of the open editor document. Scoping at the config root lets two * sibling previews (Live and workstream) each resolve against their own side. */ export declare function PreviewResolveScope({ data, path, branchId, config, children, }: { data: Data | null; path: string; branchId: string; config: Config; children: (config: Config) => ReactNode; }): import("react").JSX.Element; /** * Wraps root + component renders so the canvas can show resolved `pages[…]` / datasource strings * while the document JSON in Puck state stays unchanged. */ export declare function wrapConfigForEditorPreview(input: Config): Config; /** * Datasource context cannot be passed in by value: Puck holds the plugin array * from the first mount, so anything captured here is frozen before the fetch * that fills it settles. The boundary reads it live via useLiveRemoteDatasources. */ export declare function createPreviewResolvePlugin(options?: { /** Document path used only outside a P1PuckProvider. */ editorPath?: string; }): Plugin; export { useResolvedPreviewState }; export { mergeBlockForPreview as _mergeBlockForPreview, mergeRootForPreview as _mergeRootForPreview };