import { default as React } from 'react';
import { DocumentOutlineProps } from '../toc/types';
import { Tab } from './utils/tab-utils';
import { Editor } from '@tiptap/core';

import * as Y from 'yjs';
export interface DocumentTabsSidebarProps {
    tabs: Tab[];
    setTabs: React.Dispatch<React.SetStateAction<Tab[]>>;
    activeTabId: string;
    setActiveTabId: (id: string) => void;
    showTOC: DocumentOutlineProps['showTOC'];
    setShowTOC: DocumentOutlineProps['setShowTOC'];
    hasToC: DocumentOutlineProps['hasToC'];
    isPreviewMode: DocumentOutlineProps['isPreviewMode'];
    editor: DocumentOutlineProps['editor'];
    items: DocumentOutlineProps['items'];
    setItems: DocumentOutlineProps['setItems'];
    orientation?: DocumentOutlineProps['orientation'];
    createTab: () => void;
    renameTab: (tabId: string, payload: {
        newName?: string;
        emoji?: string;
    }) => void;
    duplicateTab: (tabId: string) => void;
    orderTab: (destinationTabId: string, activeTabId: string) => void;
    ydoc: Y.Doc;
    tabCommentCounts: Record<string, number>;
    tabSectionContainer?: HTMLElement;
    isVersionHistoryMode?: boolean;
    tabConfig?: DocumentOutlineProps['tabConfig'];
    deleteTab?: (tabId: string) => void;
    isConnected?: boolean;
    isFocusMode?: boolean;
}
export declare const DocumentTabsSidebar: ({ tabSectionContainer, ...rest }: DocumentTabsSidebarProps) => import("react/jsx-runtime").JSX.Element | null;
export declare const TabSidebar: ({ tabs, activeTabId, setActiveTabId, showTOC, setShowTOC, hasToC, isPreviewMode, editor, items, setItems, orientation, createTab, renameTab, duplicateTab, orderTab, tabCommentCounts, isVersionHistoryMode, tabConfig, deleteTab, isConnected, isFocusMode, }: DocumentTabsSidebarProps) => import("react/jsx-runtime").JSX.Element;
export declare const DdocTab: ({ tab, tabIndex, tabCount, handleEmojiChange, handleNameChange, onClick, editor, tocItem, setTocItems, orientation, activeTabId, duplicateTab, commentCount, moveTabUp, moveTabDown, isPreviewMode, isVersionHistoryMode, tabConfig, onDelete, showOutline, onShowOutlineChange, isConnected, }: {
    tab: Tab;
    tabIndex: number;
    tabCount: number;
    handleNameChange: (tabId: string, nextName: string, nextEmoji?: string) => void;
    handleEmojiChange: (tabId: string, nextEmoji: string) => void;
    onClick: () => void;
    editor: Editor;
    tocItem: DocumentOutlineProps["items"];
    setTocItems: DocumentOutlineProps["setItems"];
    orientation: DocumentOutlineProps["orientation"];
    activeTabId: string;
    duplicateTab: (tabId: string) => void;
    commentCount: number;
    moveTabUp: () => void;
    moveTabDown: () => void;
    isPreviewMode: boolean;
    isVersionHistoryMode?: boolean;
    tabConfig?: DocumentOutlineProps["tabConfig"];
    onDelete?: (tab: Tab) => void;
    showOutline: boolean;
    onShowOutlineChange: (value: boolean) => void;
    isConnected?: boolean;
}) => import("react/jsx-runtime").JSX.Element;
