import { type RefObject } from "react"; import type { OverflowCollectionHookResult } from "../responsive"; import { type DragHookResult, type dragStrategy } from "./drag-drop"; import type { composableTabProps, navigationProps, TabDescriptor, TabElement } from "./TabsTypes"; import { type EditableItemHookResult, type ExitEditModeHandler } from "./useEditableItem"; import { type ContainerNavigationProps } from "./useKeyboardNavigation"; interface tabstripHookProps { activeTabIndex?: number | null; allowDragDrop?: boolean | dragStrategy; collectionHook: OverflowCollectionHookResult; defaultActiveTabIndex?: number; defaultTabs?: TabDescriptor[]; editing?: boolean; enableAddTab: boolean; idRoot: string; innerContainerRef: RefObject; keyBoardActivation?: "manual" | "automatic"; onActiveChange?: (tabIndex: number) => void; onCloseTab?: (indexPosition: number) => void; onEnterEditMode?: () => void; onExitEditMode?: ExitEditModeHandler; onMoveTab?: (fromIndex: number, toIndex: number) => void; orientation: "horizontal" | "vertical"; promptForNewTabName?: boolean; tabs?: TabDescriptor[] | TabElement[]; } interface tabstripHookResult extends DragHookResult, Pick { activateTab: (tabIndex: number) => void; activeTabIndex: number | null; addTab: (indexPosition?: number) => void; closeTab: (indexPosition: number) => void; containerProps: ContainerNavigationProps; controlledSelection: boolean; highlightedIdx: number; focusVisible: number; focusIsWithinComponent: boolean; focusTab: (tabIndex: number, immediateFocus?: boolean) => void; navigationProps: navigationProps; tabProps: composableTabProps; } export declare const useTabstrip: ({ activeTabIndex: activeTabIndexProp, allowDragDrop, collectionHook, defaultActiveTabIndex, editing: editingProp, idRoot, innerContainerRef, keyBoardActivation, onActiveChange, onCloseTab, onEnterEditMode, onExitEditMode, onMoveTab, orientation, promptForNewTabName, }: tabstripHookProps) => tabstripHookResult & DragHookResult; export {};