import { SugaredFieldProps, SugaredRelativeEntityList } from '@contember/binding';
import { EditorCanvasSize, Scheme } from '@contember/ui';
import { FunctionComponent, ReactElement, ReactNode } from 'react';
import { SugaredDiscriminateBy } from '../../discrimination';
import type { CreateEditorPublicOptions } from '../editorFactory';
import { HoveringToolbarsProps } from '../toolbars';
import { BlockHoveringToolbarContentsProps } from './BlockHoveringToolbarContents';
import { EditorWithBlocks } from './editor';
import type { EmbedHandler } from './embed';
import type { FieldBackedElement } from './FieldBackedElement';
import { ContentOutletProps } from './templating';
export interface BlockEditorProps extends SugaredRelativeEntityList, CreateEditorPublicOptions<EditorWithBlocks> {
    label?: ReactNode;
    placeholder?: string;
    contentField: SugaredFieldProps['field'];
    sortableBy: SugaredFieldProps['field'];
    children?: ReactNode;
    size?: EditorCanvasSize;
    leadingFieldBackedElements?: FieldBackedElement[];
    trailingFieldBackedElements?: FieldBackedElement[];
    referencesField?: SugaredRelativeEntityList | string;
    referenceDiscriminationField?: SugaredFieldProps['field'];
    monolithicReferencesMode?: boolean;
    embedReferenceDiscriminateBy?: SugaredDiscriminateBy;
    embedContentDiscriminationField?: SugaredFieldProps['field'];
    embedHandlers?: Iterable<EmbedHandler>;
    toolbarScheme?: Scheme;
    inlineButtons?: HoveringToolbarsProps['inlineButtons'];
    blockButtons?: BlockHoveringToolbarContentsProps['blockButtons'];
    otherBlockButtons?: BlockHoveringToolbarContentsProps['otherBlockButtons'];
}
export declare const BlockEditor: FunctionComponent<BlockEditorProps> & {
    ContentOutlet: (props: ContentOutletProps) => ReactElement | null;
};
//# sourceMappingURL=BlockEditor.d.ts.map