import type { Editor } from 'grapesjs'; import { MouseEvent, ReactNode } from 'react'; import { ButtonWithTooltipProps } from '../Button/ButtonWithTooltip'; import type { CommonStudioLayoutConfigProps, CommonStudioLayoutProps } from './types'; import type { StudioLayoutButtonConfig } from './types/StudioButtonSchema'; export { StudioButtonSize, StudioButtonVariant } from '../public/types/StudioButtonSchema'; interface ButtonActionProps { editor: Editor; state: StudioButtonState; setState: (props: StudioButtonState) => void; } export interface StudioLayoutButtonConfigProps extends CommonStudioLayoutConfigProps { } export interface StudioButtonProps extends Omit, 'label' | 'icon' | 'editorEvents' | 'onClick' | 'tooltip' | 'htmlAttrs'> { label?: ReactNode | ((props: { editor?: Editor; }) => ReactNode); icon?: ButtonWithTooltipProps['icon']; tooltip?: string | ButtonWithTooltipProps['tooltipProps']; editorEvents?: Record; }) => void>; onClick?: (props: ButtonActionProps & { event: MouseEvent; }) => void; } export interface StudioButtonState extends Partial> { } export declare const StudioButton: import("react").NamedExoticComponent>; export default StudioButton;