import React from 'react'; import { Location } from 'react-router-dom'; import { Tab } from './TabLayout'; /** Determines the current tab from the `Location` object. */ export declare function getTabFromLocation(tabs: Tab[], location: Location, options?: { defaultTabName?: string; urlParamName?: string; }): string; /** * A tuple representing the content of a tab in [[`TabManager`]]. * * The tuple elements represent `tabName`, `isTabReadyForDisplay` (loading * indicator shown if false), and finally the actual tab content JSX. */ export type TabManagerRenderTab = [string, boolean, React.ReactNode]; export interface TabManagerProps { tabs: Tab[]; children: TabManagerRenderTab[]; defaultTabName?: string; urlParamName?: string; renderLoadingIndicator?: () => React.ReactElement | null; mountAllTabs?: boolean; displaySingleTab?: boolean; className?: string; tabContentClassName?: string; } /** * A high-level component for creating user interfaces with tabs. * * - It stores the current tab name as a URL search params. * - It doesn't mount the a tab until the user actually visits that tab. (You can disable this with by setting `mountAllTabs` to true.) * - It shows a loading indicator if a tab needs to load data before it can render content. */ export declare function TabManager({ tabs, children, defaultTabName, renderLoadingIndicator, mountAllTabs, urlParamName, displaySingleTab, className, tabContentClassName, }: TabManagerProps): React.ReactElement | null;