import { CSSProperties, RefObject } from 'react';
import { default as ReactQuill, DeltaStatic } from 'react-quill-new';
import { IAEditorRef, TValueSyncMode } from './AEditor.types';
import { IAEditorRuntimeSnapshot, TAEditorRuntimeProfile } from '../engine/AEditorRuntime';
export type { IAEditorProps, IAEditorRef, TAEditorLimitPosition, TAEditorSize, TAEditorToolbarType, TAEditorType, TValueSyncMode, } from './AEditor.types';
export type { IAEditorRuntime, IAEditorRuntimeBase, IAEditorRuntimeLoaded, IAEditorRuntimeProfileInput, IAEditorRuntimeSnapshot, TAEditorRuntimeProfile, } from '../engine/AEditorRuntime';
export type { QuillFullscreenButtonOptions } from '../modules/FullscreenController';
export type { ToolbarIcons, DestroyableModule, ClipboardModule } from '../engine/AEditorQuillConfig';
export interface UseAEditorRuntimeParams {
    initialRuntimeSnapshot: IAEditorRuntimeSnapshot;
    runtimeProfile: TAEditorRuntimeProfile;
    syncEditorDeltaState: (nextDelta: DeltaStatic, nextCalculatedSize?: number) => void;
    value: string;
}
export interface UseAEditorValueSyncParams {
    canSetValue: boolean;
    deferredSyncMs: number;
    editorRef: RefObject<ReactQuill | null>;
    hasExternalValue: boolean;
    initialRuntimeSnapshot: IAEditorRuntimeSnapshot;
    maxLength?: number;
    setValue: ((nextValue: string) => void) | undefined;
    shouldMaintainLocalDelta: boolean;
    shouldTrackLimit: boolean;
    value: string;
    valueSyncMode: TValueSyncMode;
}
export interface UseAEditorQuillBindingParams {
    commitPendingValueSync: () => void;
    contentHeight?: number;
    editorClassName?: string;
    editorRef: RefObject<ReactQuill | null>;
    editorStyle?: CSSProperties;
    extEditorRef?: RefObject<IAEditorRef | null> | ((instance: IAEditorRef | null) => void);
    handleResizeToolbar: ResizeObserverCallback;
    isReadonly: boolean;
    runtime: IAEditorRuntimeSnapshot;
}
export interface UseAEditorInitialTransitionParams {
    editorRef: RefObject<ReactQuill | null>;
    isReadonly: boolean;
}
export interface IAEditorResizeSession {
    initialClientY: number;
    initialHeight: number;
}
export interface IUseAEditorResizeStateParams {
    contentHeight?: number;
    extMaxHeight?: number;
    extMinHeight?: number;
    initialToolbarHeight: number;
}
export interface IUseAEditorResizeStateResult {
    currentHeight?: number;
    handleResizeKeyDown: (event: import('react').KeyboardEvent) => void;
    handleResizeStart: (event: import('react').MouseEvent) => void;
    handleResizeToolbar: ResizeObserverCallback;
    isResizing: boolean;
    toolbarHeight: number;
}
export interface IAEditorResizerProps {
    contentHeight?: number;
    currentHeight?: number;
    handleResizeStart: (e: import('react').MouseEvent) => void;
    isResizing: boolean;
    noTransition: string;
    resizerHeight: number;
}
