import { WidgetId, WidgetsPanelColumnLayout } from '../../../domains/dashboarding/dashboard-model'; import { WidgetPanelLayoutManager } from '../../../domains/dashboarding/hooks/use-widgets-layout'; import { WidgetProps } from '../../../domains/widgets/components/widget/types'; import { TabberButtonsWidgetProps } from '../../../props'; /** * @internal */ export type UseTabber = ({ widgets, config, }: { widgets: WidgetProps[]; config?: TabbersConfig | undefined; }) => { layoutManager: WidgetPanelLayoutManager; widgets: WidgetProps[]; }; /** * Configuration for a single tab in a tabber widget. */ export type TabberTabConfig = { /** * Widget IDs from the dashboard to display in the tab. */ displayWidgetIds: string[]; }; /** * Configuration for a tabber widget. */ export type TabberConfig = { /** * Tabs configuration for the tabber widget. */ tabs: TabberTabConfig[]; }; /** * Configuration for tabbers in a dashboard. * It includes separate configuration for each tabber. */ export type TabbersConfig = Record; export declare const isTabberButtonsWidget: (widget: WidgetProps) => widget is TabberButtonsWidgetProps; export declare const modifyLayout: (tabbersOptions: TabbersConfig, tabberState: Record) => (layout: WidgetsPanelColumnLayout) => WidgetsPanelColumnLayout; /** * Hook that modifies widget properties so it became a tabber widget. * Incapsulates logic for updating layout via navigating tabs * @param widgets * @param tabbersConfigs * @internal */ export declare const useTabber: UseTabber;