import * as react_jsx_runtime from 'react/jsx-runtime'; import { ReactNode } from 'react'; import { SceneBackgroundsPanelState } from '../../hooks/useSceneBackgroundsPanel.mjs'; import '../../types/wall.mjs'; interface SceneBackgroundsPanelProps { /** State from `useSceneBackgroundsPanel()`. */ admin: SceneBackgroundsPanelState; /** Class on the root wrapper. */ className?: string; children?: ReactNode; } declare function Root({ admin, className, children }: SceneBackgroundsPanelProps): react_jsx_runtime.JSX.Element; interface SceneBackgroundsPanelAddFormProps { className?: string; children?: ReactNode; } /** * Form wrapper that calls `admin.submit()` on submit. Inputs disabled while * generating so consumers don't have to wire that themselves. */ declare function AddForm({ className, children }: SceneBackgroundsPanelAddFormProps): react_jsx_runtime.JSX.Element; interface SceneBackgroundsPanelTitleProps { className?: string; placeholder?: string; } declare function Title({ className, placeholder }: SceneBackgroundsPanelTitleProps): react_jsx_runtime.JSX.Element; interface SceneBackgroundsPanelFileInputProps { className?: string; accept?: string; } declare function FileInput({ className, accept }: SceneBackgroundsPanelFileInputProps): react_jsx_runtime.JSX.Element; interface SceneBackgroundsPanelPromptProps { className?: string; placeholder?: string; rows?: number; } declare function Prompt({ className, placeholder, rows, }: SceneBackgroundsPanelPromptProps): react_jsx_runtime.JSX.Element; interface SceneBackgroundsPanelSubmitProps { className?: string; /** Idle label. Default `Generate background`. */ idleChildren?: ReactNode; /** Loading label. Default `Generating…`. */ loadingChildren?: ReactNode; } declare function Submit({ className, idleChildren, loadingChildren, }: SceneBackgroundsPanelSubmitProps): react_jsx_runtime.JSX.Element; interface SceneBackgroundsPanelStatusProps { className?: string; } /** Shows `admin.status`. Returns null when status is empty. */ declare function Status({ className }: SceneBackgroundsPanelStatusProps): react_jsx_runtime.JSX.Element | null; interface SceneBackgroundsPanelErrorProps { className?: string; } /** Shows `admin.error`. Returns null when error is empty. */ declare function ErrorText({ className }: SceneBackgroundsPanelErrorProps): react_jsx_runtime.JSX.Element | null; /** * Headless compound primitive for the wall scene-backgrounds editor. Pair with * `useSceneBackgroundsPanel()` for state. The list of existing backgrounds is * left to the consumer to render — iterate `admin.backgrounds` directly and * call `admin.remove(id)` for delete buttons. * * Usage: * ```tsx * const sceneBgPanel = useSceneBackgroundsPanel({ isAdmin }); * return ( * *
* {sceneBgPanel.backgrounds.map(bg => ( *
* * *
* ))} *
* * * * * * * * *
* ); * ``` */ declare const SceneBackgroundsPanel: typeof Root & { AddForm: typeof AddForm; Title: typeof Title; FileInput: typeof FileInput; Prompt: typeof Prompt; Submit: typeof Submit; Status: typeof Status; Error: typeof ErrorText; }; export { SceneBackgroundsPanel, type SceneBackgroundsPanelAddFormProps, type SceneBackgroundsPanelErrorProps, type SceneBackgroundsPanelFileInputProps, type SceneBackgroundsPanelPromptProps, type SceneBackgroundsPanelProps, type SceneBackgroundsPanelStatusProps, type SceneBackgroundsPanelSubmitProps, type SceneBackgroundsPanelTitleProps };