import type { ReactNode } from 'react'; import React from 'react'; import type { ComponentModel } from '@teambit/component'; import type { EmptyStateSlot, CompositionsMenuSlot, UsePreviewSandboxSlot, UsePreviewPropsSlot } from './compositions.ui.runtime'; import type { Composition } from './composition'; import type { ComponentCompositionProps } from './ui/composition-preview'; export type MenuBarWidget = { location: 'start' | 'end'; content: ReactNode; }; export type CompositionsProp = { menuBarWidgets?: CompositionsMenuSlot; emptyState?: EmptyStateSlot; usePreviewSandboxSlot?: UsePreviewSandboxSlot; /** * per-component resolvers for iframe attributes on the composition preview (`allow`, * `referrerPolicy`, ...). Each resolver gets the current `ComponentModel`; results merge * with later registrations winning. Default `allow` (`clipboard-write`) lives on * `ComponentPreview` and applies when no resolver overrides it. */ usePreviewPropsSlot?: UsePreviewPropsSlot; enableLiveControls?: boolean; }; export declare function Compositions({ menuBarWidgets, emptyState, usePreviewSandboxSlot, usePreviewPropsSlot, enableLiveControls, }: CompositionsProp): React.JSX.Element; export type CompositionContentProps = { component: ComponentModel; selected?: Composition; queryParams?: string | string[]; emptyState?: EmptyStateSlot; } & ComponentCompositionProps; export declare function CompositionContent({ component, selected, queryParams, emptyState, sandbox, ...componentCompositionProps }: CompositionContentProps): React.JSX.Element;