import { DdocProps } from './types';
import { Editor } from '@tiptap/react';
import { DBlockRuntimeState } from './extensions/d-block/dblock-runtime';

export declare const useDdocEditor: ({ isPreviewMode, viewerMode, initialContent, versionHistoryState, collaboration, onChange, onCollaboratorChange, onCommentInteraction, onError, setCharacterCount, setWordCount, setPageCount, ipfsImageUploadFn, ddocId, enableIndexeddbSync, unFocused, isFocusMode, theme, zoomLevel, onInvalidContentError, ignoreCorruptedData, isPresentationMode, metadataProxyUrl, extensions: externalExtensions, onCopyHeadingLink, ipfsImageFetchFn, fetchV1ImageFn, isConnected, activeModel, maxTokens, isAIAgentEnabled, onIndexedDbError, disableInlineComment, initialCommentAnchors, isPreviewEditor, ...rest }: Partial<DdocProps> & {
    isFocusMode?: boolean;
    isPreviewEditor?: boolean;
}) => {
    ydoc: import('yjs').Doc;
    awareness: import('y-protocols/awareness.js').Awareness | null;
    refreshYjsIndexedDbProvider: () => Promise<void>;
    terminateSession: () => void;
    isContentLoading: boolean;
    tabs: import('./components/tabs/utils/tab-utils').Tab[];
    hasTabState: boolean;
    dBlockRuntimeState: DBlockRuntimeState;
    dBlockRuntimeStateRef: import('react').MutableRefObject<DBlockRuntimeState>;
    isVersionMode: boolean;
    activeTabId: string;
    setTabs: import('react').Dispatch<import('react').SetStateAction<import('./components/tabs/utils/tab-utils').Tab[]>>;
    setActiveTabId: (id: string) => void;
    createTab: () => string;
    deleteTab: (tabId: string) => void;
    renameTab: (tabId: string, { newName, emoji }: {
        newName?: string;
        emoji?: string;
    }) => void;
    duplicateTab: (tabId: string) => string | undefined;
    orderTab: (destinationTabId: string, movedTabId: string) => void;
    onConnect: (connectConfig: import('./types').CollabConnectionConfig) => void;
    isReady: boolean;
    isSyncing: boolean;
    hasCollabContentInitialised: boolean;
    isIndexeddbSynced: boolean;
    initialiseYjsIndexedDbProvider: () => Promise<void>;
    flushPendingUpdate: () => void;
    collabState: import('./types').CollabState;
    editor: Editor | null;
    cachedEditorEntries: import('./hooks/use-tab-editor-cache').CachedTabEditorRenderEntry[];
    ref: import('react').RefObject<HTMLDivElement>;
    slides: string[];
    setSlides: import('react').Dispatch<import('react').SetStateAction<string[]>>;
    tocItems: import('./components/toc/types').ToCItemType[];
    setTocItems: import('react').Dispatch<import('react').SetStateAction<import('./components/toc/types').ToCItemType[]>>;
    activeCommentId: string | null;
    setActiveCommentId: import('react').Dispatch<import('react').SetStateAction<string | null>>;
    focusCommentWithActiveId: (id: string) => void;
    commentAnchorsRef: import('react').MutableRefObject<import('./extensions/comment/comment-decoration-plugin').CommentAnchor[]>;
    draftAnchorsRef: import('react').MutableRefObject<import('./extensions/comment/comment-decoration-plugin').CommentAnchor[]>;
    storeApiRef: import('react').MutableRefObject<import('zustand').StoreApi<import('./stores/comment-store').CommentStoreState> | null>;
};
