import { MobileTabsOptionsProps } from '../MobileTabs/MobileTabsOptions'; import * as React from 'react'; type BaseRouteConfig = { /** The label that will display for the link label */ label: string; /** The route link */ link: string; }; export type RouteConfig = BaseRouteConfig & { /** Array of the BaseRouteConfig objects. Object includes label and link. */ subrows?: BaseRouteConfig[]; }; type RouterTabsBaseProps = { /** Multiple children. Typically in the form of NavLink components */ children: React.ReactNode[]; /** Determines the style of the tabs. If true, the subtabs style will be applied. */ subtabs?: boolean; /** Current path from the router */ currentPath: string; /** Refresh router tab animation */ refreshRouterTabs?: boolean; /** Optional prop to add a test id to the RouterTabs for QA testing */ qaTestId?: string; }; type RouterTabsWithMobile = RouterTabsBaseProps & { /** Array of the RouteConfig object. Needed to render the tab options for mobile. */ mobileConfig: RouteConfig[]; /** Pass in a navigate function (useHistory, useNavigate, or other functions) depending on the router the app is using. */ navigate: MobileTabsOptionsProps['navigate']; }; type RouterTabsWithoutMobile = RouterTabsBaseProps & { mobileConfig?: never; navigate?: never; }; export type RouterTabsProps = RouterTabsWithMobile | RouterTabsWithoutMobile; export default function RouterTabs({ children, subtabs, mobileConfig, navigate, currentPath, refreshRouterTabs, qaTestId, }: RouterTabsProps): React.JSX.Element; export {};