import type { Asset } from "../types/editor"; import "./dialog.css"; import "./AssetManagerModal.css"; export interface AssetEditModalProps { asset: Asset; /** The full project pool, used to reject a `ref` that collides with another asset. */ projectAssets: Asset[]; onClose: () => void; /** * Persist the edited asset. `prevRef` is the asset's ref *before* this edit so * the caller can rewrite in-document placeholders when the ref changed. */ onSave: (asset: Asset, prevRef: string) => Promise | void; /** * Begin replacing this asset — opens the asset manager's replace mode, where * the user picks/uploads a new asset. When omitted, the Replace control is * hidden. */ onReplace?: (asset: Asset) => void; /** * Duplicate this asset under a fresh ref. When omitted, the button is hidden. * May be async; the modal shows a busy state until it settles. */ onDuplicate?: (asset: Asset) => void | Promise; } declare const AssetEditModal: ({ asset, projectAssets, onClose, onSave, onReplace, onDuplicate, }: AssetEditModalProps) => import("react").JSX.Element; export default AssetEditModal;