import { TabPanelProps as ReactAriaTabPanelProps, TabsProps as ReactAriaTabsProps } from 'react-aria-components'; import './Tabs.scss'; import { States, Sizes } from '../../core/types'; import React from 'react'; export type TabOption = { id: string; name: string; content?: string | React.ReactNode; selected?: boolean; disabled?: boolean; navigationContainerChildren?: React.ReactNode; notification?: { count?: number; size: Sizes | string; visible: boolean; state?: States | string; }; }; export type TabProps = { id: string; name: string; content?: string; selected?: boolean; disabled?: boolean; showNavigation?: boolean; notification?: { count?: number; size: Sizes | string; visible: boolean; state?: States | string; }; }; export interface MyTabsProps extends Omit { children?: React.ReactNode; label?: string; onSelectionChange?: (key: string) => void; selectedKey?: string; defaultSelectedKey?: string; navigationContainerChildren?: React.ReactNode; style?: React.CSSProperties; tabsStyle?: React.CSSProperties; tabPanelsStyle?: React.CSSProperties; options?: TabOption[]; showNavigation?: boolean; } export interface MyTabPanelProps extends Omit { children?: React.ReactNode; id: string; } /** * Tabs component that renders a set of tabs with associated content and optional labels and descriptions. * * @param {Object} props - The properties passed to the component. * @param {Array} props.options - An array of tab options, where each option defines the tab's id, name, content, and optional notification settings. * @param {string} [props.label] - An optional label displayed above the tabs. * @param {function(string): void} props.onSelectionChange - Callback function called when the selected tab changes, receiving the new selected tab's key. * @param {string} [props.selectedKey] - The key of the currently selected tab. * @param {string} [props.defaultSelectedKey] - The key of the tab that should be selected by default. * @param {boolean} [props.showNavigation] - Whether to show the navigation buttons. * @param {React.ReactNode} [props.navigationContainerChildren] - Additional children to render inside the navigation container. * @param {React.CSSProperties} [props.style] - The style of the Tabs container. * @param {React.CSSProperties} [props.tabsStyle] - The style of the Tabs. * @param {React.CSSProperties} [props.tabPanelsStyle] - The style of the TabPanels. * @returns {JSX.Element|null} The rendered Tabs component, or null if no options are provided. * */ export declare const Tabs: (props: MyTabsProps) => import("react/jsx-runtime").JSX.Element; export default Tabs;