interface IBEditorDocumentUpdateOptions {
    canSetValue: boolean;
    shouldTrackLimit: boolean;
}
interface IBEditorPlainTextUpdateOptions {
    shouldTrackLimit: boolean;
}
interface IBEditorImmediateHtmlUpdateOptions {
    canSetValue: boolean;
    valueSyncMode: 'deferred' | 'immediate';
}
interface IBEditorTransactionStepLike {
    toJSON?: () => unknown;
}
interface IBEditorTransactionLike {
    docChanged?: boolean;
    steps?: IBEditorTransactionStepLike[];
}
interface IBEditorImmediateHtmlNormalizationOptions extends IBEditorImmediateHtmlUpdateOptions {
    appendedTransactions?: IBEditorTransactionLike[];
    transaction?: IBEditorTransactionLike;
}
interface IBEditorEffectiveValueSyncOptions {
    domPayloadLength?: number;
    domTextLength: number;
    valueSyncMode: 'deferred' | 'immediate';
}
interface IBEditorRuntimePayloadEstimateOptions extends IBEditorImmediateHtmlUpdateOptions {
    domTextLength: number;
}
interface IBEditorRectLike {
    height: number;
    left: number;
    top: number;
    width: number;
}
interface IBEditorTableSelectionOverlayLike {
    cells: IBEditorRectLike[];
    isDisjoint?: boolean;
    mode?: string;
    selectedCells: HTMLTableCellElement[];
}
interface IBEditorMediaOverlayLike extends IBEditorRectLike {
    dataAlign: string | null;
    element: HTMLElement;
    kind: string;
}
export declare function shouldProcessBEditorDocumentUpdate({ canSetValue, shouldTrackLimit, }: IBEditorDocumentUpdateOptions): boolean;
export declare function shouldReadBEditorPlainTextOnUpdate({ shouldTrackLimit }: IBEditorPlainTextUpdateOptions): boolean;
export declare function shouldReadBEditorImmediateHtmlOnUpdate({ canSetValue, valueSyncMode, }: IBEditorImmediateHtmlUpdateOptions): boolean;
export declare function shouldDeferBEditorImmediateHtmlNormalizationOnUpdate({ appendedTransactions, canSetValue, transaction, valueSyncMode, }: IBEditorImmediateHtmlNormalizationOptions): boolean;
export declare function resolveBEditorEffectiveValueSyncMode({ domPayloadLength, domTextLength, valueSyncMode, }: IBEditorEffectiveValueSyncOptions): 'deferred' | 'immediate';
export declare function shouldEstimateBEditorRuntimeValuePayloadLengthOnUpdate({ canSetValue, domTextLength, valueSyncMode, }: IBEditorRuntimePayloadEstimateOptions): boolean;
export declare function areBEditorTableMenuPositionsEqual(current: {
    left: number;
    top: number;
} | null, next: {
    left: number;
    top: number;
} | null): boolean;
export declare function areBEditorNodeListsEqual<TNode extends Node>(current: readonly TNode[], next: readonly TNode[]): boolean;
export declare function areBEditorTableSelectionOverlaysEqual(current: IBEditorTableSelectionOverlayLike | null, next: IBEditorTableSelectionOverlayLike | null): boolean;
export declare function areBEditorMediaOverlaysEqual(current: IBEditorMediaOverlayLike | null, next: IBEditorMediaOverlayLike | null): boolean;
export declare function resolveBEditorMediaOverlaySubscriptionTarget(overlay: IBEditorMediaOverlayLike | null): HTMLElement | null;
export {};
