import { default as React } from 'react';
import { IAEditorProps } from '../../AEditor/AEditor';
import { TBEditorMediaAlignment, TBEditorMediaKind, TBEditorMediaResizeHandle } from '../media/resize';
import { IBEditorTableColumnResizeTarget, IBEditorTableRowResizeTarget } from '../table/resize';
export type { IAEditorProps, IAEditorProps as IBEditorProps, IAEditorRef, IAEditorRef as IBEditorRef, TAEditorLimitPosition, TAEditorSize, TAEditorToolbarType, TAEditorType, TValueSyncMode, } from '../../AEditor/AEditor';
export interface IBEditorAdapter {
    blur: () => void;
    copyContent: (options?: {
        onError?: () => void;
        onSuccess?: () => void;
    }) => void;
    focus: () => void;
    getEditor: () => IBEditorRuntimeAdapter;
}
interface IBEditorRuntimeAdapter {
    getHTML: () => string;
    getLength: () => number;
    getText: () => string;
    root: HTMLElement;
}
export interface IBEditorMediaTarget {
    element: HTMLElement;
    kind: TBEditorMediaKind;
}
export interface IBEditorMediaOverlayState extends IBEditorMediaTarget {
    dataAlign: TBEditorMediaAlignment | null;
    height: number;
    left: number;
    top: number;
    width: number;
}
export interface IBEditorMediaDragState extends IBEditorMediaTarget {
    handle: TBEditorMediaResizeHandle;
    startHeight: number;
    startWidth: number;
    startX: number;
    startY: number;
}
export interface IBEditorTableCellAddress {
    cellIndex: number;
    rowIndex: number;
    tableIndex: number;
}
export interface IBEditorTableDragAnchor {
    address: IBEditorTableCellAddress;
    cell: HTMLTableCellElement;
}
export interface IBEditorTableRowResizeDragState extends IBEditorTableRowResizeTarget {
    startY: number;
}
export interface IBEditorTableColumnResizeDragState extends IBEditorTableColumnResizeTarget {
    selectionAddresses: IBEditorTableCellAddress[];
    startX: number;
}
export interface IBEditorTableResizeGuideState {
    height: number;
    left: number;
    orientation: 'column' | 'row';
    top: number;
    width: number;
}
export type TBEditorMediaHandleStyles = Record<TBEditorMediaResizeHandle, React.CSSProperties>;
export type TBEditorExternalRef = IAEditorProps['editorRef'];
