import { Editor } from '@tiptap/react';
import { DdocProps } from '../types';
import { Tab } from '../components/tabs/utils/tab-utils';
import * as Y from 'yjs';
interface UseTabManagerArgs {
    ydoc: Y.Doc;
    initialContent: DdocProps['initialContent'];
    enableCollaboration?: boolean;
    isDDocOwner: boolean;
    createDefaultTabIfMissing: boolean;
    shouldSyncActiveTab: boolean;
    defaultTabId?: string;
    preferFirstTabOnInit?: boolean;
    onVersionHistoryActiveTabChange?: (tabId: string | null) => void;
    getEditor?: () => Editor | null;
    flushPendingUpdate?: () => void;
}
export declare const getNewTabId: () => string;
export declare const useTabManager: ({ ydoc, initialContent, enableCollaboration, isDDocOwner, createDefaultTabIfMissing, shouldSyncActiveTab, defaultTabId, preferFirstTabOnInit, onVersionHistoryActiveTabChange, flushPendingUpdate, getEditor, }: UseTabManagerArgs) => {
    tabs: Tab[];
    hasTabState: boolean;
    activeTabId: string;
    setTabs: import('react').Dispatch<import('react').SetStateAction<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;
};
export {};
