import { default as React } from 'react';
import { TValueSyncMode } from '../core/types';
interface IBEditorReadableRuntime {
    commands: {
        setContent: (content: string, options?: {
            emitUpdate?: boolean;
        }) => boolean;
    };
    getText: () => string;
    isInitialized?: boolean;
    view: {
        dom: HTMLElement;
    };
}
interface IPendingBEditorValueSync {
    html?: string;
    prepared?: boolean;
    readHtml?: () => string;
}
interface IUseBEditorValueSyncParams {
    canSetValue: boolean;
    deferredSyncMs: number;
    editorRef: React.RefObject<IBEditorReadableRuntime | null>;
    hasExternalValue: boolean;
    setValue?: (value: string) => void;
    shouldTrackLimit: boolean;
    value: string;
    valueSyncMode: TValueSyncMode;
}
export declare function getBEditorDom(editor: {
    isInitialized?: boolean;
    view: {
        dom: HTMLElement;
    };
}): HTMLElement | null;
export declare function readBEditorRawHtml(editor: {
    getText: () => string;
    isInitialized?: boolean;
    view: {
        dom: HTMLElement;
    };
}): string;
export declare function readBEditorHtml(editor: {
    getText: () => string;
    isInitialized?: boolean;
    view: {
        dom: HTMLElement;
    };
}): string;
export declare function useBEditorValueSync({ canSetValue, deferredSyncMs, editorRef, hasExternalValue, setValue, shouldTrackLimit, value, valueSyncMode, }: IUseBEditorValueSyncParams): {
    calculatedSize: number;
    commitPendingValueSync: (pendingSync?: IPendingBEditorValueSync | null) => void;
    editorInputValue: string;
    scheduleValueSync: (htmlOrReader: string | (() => string), options?: {
        immediate?: boolean;
        prepared?: boolean;
    }) => void;
    syncExternalValue: () => void;
    updateCalculatedSize: (nextSize: number) => void;
};
export {};
