import React, { CSSProperties } from 'react';
import { PropertySelectorPluginProps } from './plugins';
import { FormatOptionType } from './lexical-editor.types';
import { FormAwareProps } from '@parlor/ui/form';
import { type LexicalEditor as LexicalEditorType } from 'lexical';
export interface LexicalEditorProps extends FormAwareProps {
    /**
     * custom attribute.
     */
    [key: string]: unknown;
    autoFocus?: boolean;
    /**
     * classes
     */
    classes?: {
        container?: string;
        text?: string;
        wrapper?: string;
        wrapperContainer?: string;
    };
    /**
     * Whether to show toolbar in focus state and hide it in blur state or not.
     */
    conditionalToolbar?: boolean;
    /**
     * initial value for showing
     */
    description?: string;
    /**
     * select which editor type want to use.
     */
    editorType?: FormatOptionType;
    /**
     * give background container to text editor.
     */
    hasWrapper?: boolean;
    /**
     * give specific height to text editor.
     */
    height?: CSSProperties['height'];
    /**
     * Disable editors input
     */
    isDisabled?: boolean;
    /**
     * give limit to content.
     */
    max?: number | null;
    /**
     * Start to scroll from specific size.
     */
    maxHeight?: number | string;
    /**
     * Minimum height to content.
     */
    minHeight?: number | string;
    /**
     * Custom time for onChange's debounce.
     */
    ms?: number;
    /**
     * handle blur editor.
     */
    onBlur?: (content: any) => void;
    /**
     * handle text input value.
     */
    onChange?: (innerHTML: string) => void;
    /**
     * handle delete action.
     */
    onDelete?: () => void;
    /**
     * on enter.
     */
    onEnter?: (editor: LexicalEditorType, event: KeyboardEvent) => void;
    /**
     * handle ащсгы editor.
     */
    onFocus?: (content: any) => void;
    /**
     * handle save action.
     */
    onSave?: (content: string) => void;
    /**
     * give default text as placeholder.
     */
    placeholder?: string;
    propertySelectorProps?: PropertySelectorPluginProps;
    /**
     * Disable editors input
     */
    readOnly?: boolean;
    /**
     * Whether to show enter submit text or not.
     */
    toolbarContainerId?: string;
    withSubmitText?: boolean;
    /**
     *  default wrapper color.
     */
    wrapperColor?: string;
    /**
     * wrapper styles, use classes prop instead
     */
    wrapperStyles?: CSSProperties;
    /**
     * Give variation if hasWrapper is true.
     * In other case it's not useful.
     */
    wrapperVariation?: string;
}
export declare const LexicalEditor: {
    (props: LexicalEditorProps): JSX.Element;
    displayName: string;
};
export declare const LexicalEditorBase: React.MemoExoticComponent<({ name, description, rules, onChange, hasWrapper, wrapperStyles, wrapperVariation, withSubmitText, classes, ...props }: LexicalEditorProps) => JSX.Element>;
export declare const LexicalEditorInner: ({ autoFocus, classes, placeholder, editorType, isDisabled, conditionalToolbar, onSave, onBlur: _onBlur, minHeight, height, maxHeight, max, onDelete, onEnter, toolbarContainerId, readOnly, onChange, description, propertySelectorProps, ms, }: LexicalEditorProps) => JSX.Element;
