import * as React from 'react';
import { type ReactElement } from 'react';
import { type ComponentsOverrides, type SxProps, type Theme } from '@mui/material/styles';
/**
* Wrap any component with this component to make it configurable
*
* When the edit mode is enabled, users will see a button to edit the component;
* when clicked, the inspector will show the editor element.
*
* Creates a context for the preference key, so that both the child component
* and the editor can access it using usePreferenceKey();
*
* @example
* const ConfigurableTextBlock = ({ preferenceKey = "TextBlock", ...props }) => (
* } preferenceKey={preferenceKey}>
*
*
* );
*/
export declare const Configurable: (inProps: ConfigurableProps) => React.JSX.Element;
export interface ConfigurableProps {
children: ReactElement;
editor: ReactElement;
preferenceKey: string;
openButtonLabel?: string;
sx?: SxProps;
}
export declare const ConfigurableClasses: {
root: string;
editMode: string;
editorActive: string;
};
declare module '@mui/material/styles' {
interface ComponentNameToClassKey {
RaConfigurable: 'root' | 'editMode' | 'editorActive';
}
interface ComponentsPropsList {
RaConfigurable: Partial;
}
interface Components {
RaConfigurable?: {
defaultProps?: ComponentsPropsList['RaConfigurable'];
styleOverrides?: ComponentsOverrides>['RaConfigurable'];
};
}
}
//# sourceMappingURL=Configurable.d.ts.map