import type { ReactNode, ComponentType } from 'react'; import React from 'react'; import type { SlotRegistry } from '@teambit/harmony'; import type { ComponentUI } from '@teambit/component'; import type { ComponentCompareUI } from '@teambit/component-compare'; import type { UsePreviewProps, UseSandboxPermission } from '@teambit/preview.ui.component-preview'; import type { MenuBarWidget } from './compositions'; export type CompositionsMenuSlot = SlotRegistry; export type EmptyStateSlot = SlotRegistry; export type UsePreviewSandboxSlot = SlotRegistry; export type UsePreviewPropsSlot = SlotRegistry; export declare class CompositionsUI { private menuBarWidgetSlot; private emptyStateSlot; private usePreviewSandboxSlot; private usePreviewPropsSlot; constructor(menuBarWidgetSlot: CompositionsMenuSlot, emptyStateSlot: EmptyStateSlot, usePreviewSandboxSlot: UsePreviewSandboxSlot, usePreviewPropsSlot: UsePreviewPropsSlot); /** * register a new tester empty state. this allows to register a different empty state from each environment for example. */ registerEmptyState(emptyStateComponent: ComponentType): this; registerMenuWidget(...widget: MenuBarWidget[]): void; registerPreviewSandbox(useSandboxPermission: UseSandboxPermission): void; /** * register a per-component resolver for iframe attributes on the composition preview * (`allow`, `referrerPolicy`, ...). The resolver runs at render time with the current * `ComponentModel`; results from multiple resolvers merge with later keys winning. Use * this to grant a specific subset of components extra Permissions Policy capabilities * (e.g. `fullscreen` for chart/video components) without loosening the default for all * components. */ registerPreviewProps(usePreviewProps: UsePreviewProps): void; getCompositionsCompare: () => React.JSX.Element; static dependencies: import("@teambit/harmony").Aspect[]; static runtime: import("@teambit/harmony").RuntimeDefinition; static slots: (((registerFn: () => string) => SlotRegistry) | ((registerFn: () => string) => SlotRegistry) | ((registerFn: () => string) => SlotRegistry) | ((registerFn: () => string) => SlotRegistry))[]; static provider([component, componentCompare]: [ComponentUI, ComponentCompareUI], config: {}, [compositionMenuSlot, emptyStateSlot, usePreviewSandboxSlot, usePreviewPropsSlot]: [ CompositionsMenuSlot, EmptyStateSlot, UsePreviewSandboxSlot, UsePreviewPropsSlot ]): Promise; } export default CompositionsUI;