import { ButtonHTMLAttributes, ReactNode } from 'react';
import { DirectoryData, DirectoryProps } from '../Directory/types';
import { MerchantInfo } from '../Topbar/types';
import { TenantBadge } from '../Sidebar/types';
export type { TenantBadge } from '../Sidebar/types';
export declare enum SidebarV2StateChange {
COLLAPSED = "collapsed",
EXPANDED = "expanded",
INTERMEDIATE = "intermediate"
}
export type SidebarV2StateChangeType = `${SidebarV2StateChange}`;
export type SecondarySidebarItem = {
label: string;
value: string;
icon: ReactNode;
badge?: TenantBadge;
};
export type SecondarySidebarInfo = {
items: SecondarySidebarItem[];
selected: string;
onSelect: (value: string) => void;
buttonProps?: ButtonHTMLAttributes;
/**
* Optional bottom slot for actions like settings/help/profile.
* Renders pinned at the bottom of the rail.
*/
footerSlot?: ReactNode;
};
export type SidebarV2Props = {
height?: string;
children?: ReactNode;
data?: DirectoryData[] | null;
secondarySidebar?: SecondarySidebarInfo;
topbar?: ReactNode;
footer?: ReactNode;
sidebarTopSlot?: ReactNode;
sidebarCollapseKey?: string;
merchantInfo?: MerchantInfo;
rightActions?: ReactNode;
enableTopbarAutoHide?: boolean;
isTopbarVisible?: boolean;
onTopbarVisibilityChange?: (isVisible: boolean) => void;
defaultIsTopbarVisible?: boolean;
isExpanded?: boolean;
onExpandedChange?: (isExpanded: boolean) => void;
onSidebarStateChange?: (state: SidebarV2StateChangeType) => void;
/**
* Enables the hover preview shown from the collapsed desktop sidebar.
* Disabled by default.
*/
enableIntermediateState?: boolean;
defaultIsExpanded?: boolean;
showMobilePrimaryActionButton?: boolean;
mobilePrimaryActionButtonProps?: Omit, 'type'>;
activeItem?: string | null;
onActiveItemChange?: (item: string | null) => void;
defaultActiveItem?: string | null;
showHierarchyLines?: DirectoryProps['showHierarchyLines'];
hierarchyLineBorderRadius?: DirectoryProps['hierarchyLineBorderRadius'];
expandedItems?: DirectoryProps['expandedItems'];
defaultExpandedItems?: DirectoryProps['defaultExpandedItems'];
onExpandedItemsChange?: DirectoryProps['onExpandedItemsChange'];
onItemExpand?: DirectoryProps['onItemExpand'];
enableVirtualization?: DirectoryProps['enableVirtualization'];
virtualization?: DirectoryProps['virtualization'];
};
export type { SidebarV2MobileNavigationItem, SidebarV2MobileNavigationProps, } from './SidebarV2MobileNavigation/types';