import type { DSPropTypesSchema, GlobalAttributesT, ValidationMap, XstyledProps } from '@elliemae/ds-props-helpers'; import { type Theme } from '@elliemae/ds-system'; import type { TypescriptHelpersT } from '@elliemae/ds-typescript-helpers'; import { DSLeftNavigationName, LEFT_NAVIGATION_SLOTS } from './constants/index.js'; import type { ContextProps } from './LeftNavigationContext.js'; type ColorsKey = keyof Theme['colors']; export declare namespace DSLeftNavigationT { type SlotFunctionArguments = { dsLeftnavigationAlertsIcon: () => object; dsLeftnavigationAreasContainer: () => object; dsLeftnavigationArrowContainer: () => object; dsLeftnavigationBodyAreasContainer: () => object; dsLeftnavigationBodyHeaderArea: () => object; dsLeftnavigationBodyItemsArea: () => object; dsLeftnavigationBottomContainer: () => object; dsLeftnavigationCollapsedContainer: () => object; dsLeftnavigationExceptionsIcon: () => object; dsLeftnavigationFooterItem: () => object; dsLeftnavigationFooterLabel: () => object; dsLeftnavigationFooterMenu: () => object; dsLeftnavigationFooterMenuCollapse: () => object; dsLeftnavigationFooterSeparator: () => object; dsLeftnavigationHeaderArea: () => object; dsLeftnavigationItem: () => object; dsLeftnavigationItemBorderBottom: () => object; dsLeftnavigationItemChevronBack: () => object; dsLeftnavigationItemDate: () => object; dsLeftnavigationItemLabel: () => object; dsLeftnavigationItemSeparator: () => object; dsLeftnavigationLeftContainer: () => object; dsLeftnavigationLoaderWrapper: () => object; dsLeftnavigationMessagesIcon: () => object; dsLeftnavigationNotificationsContainer: () => object; dsLeftnavigationNotificationsIcon: () => object; dsLeftnavigationRightContainer: () => object; dsLeftnavigationRoot: () => object; dsLeftnavigationSectionContainer: () => object; dsLeftnavigationSectionLabel: () => object; dsLeftnavigationSectionRightLabel: () => object; dsLeftnavigationVerticalSeparator: () => object; }; type LabelOveflowT = 'wrap' | 'wrapAll' | 'truncate'; interface RequiredProps { } interface DefaultProps { expanded: boolean; expandedWidth: string; openedItem: string | null; items: GenericItemItemProps[]; footerLabel: string; labelOverflow: LabelOveflowT; onSelectedChange: (item: string | null) => void; onFocusChange: (item: string | null) => void; onFooterExpand: () => void; onFooterClose: () => void; onItemClick: (item: GenericItemItemProps, e: React.MouseEvent) => void; loading: boolean; isSkeleton: boolean; hideFooterPipe: boolean; } interface OptionalProps extends TypescriptHelpersT.PropsForGlobalOnSlots { FooterLabelComponent?: React.ComponentType; selectedItem?: string | null; selectedParent?: string | null; disableDefaultSelection?: boolean; withoutBodyShadow?: boolean; actionRef?: React.RefObject<{ setFocusedItem: React.Dispatch>; }>; HeaderComponent?: GenericItemItemProps; BodyHeaderComponent?: GenericItemItemProps; } interface Props extends Partial, OptionalProps, Omit, keyof DefaultProps | keyof OptionalProps | keyof XstyledProps>, XstyledProps, RequiredProps { } interface InternalProps extends DefaultProps, OptionalProps, Omit, keyof DefaultProps | keyof OptionalProps | keyof XstyledProps>, XstyledProps, RequiredProps { } type OutOfTheBoxT = 'ds-left-nav-item-header' | 'ds-left-nav-item-link' | 'ds-left-nav-item-submenu' | 'ds-left-nav-item-controlled-drilldown' | 'ds-left-nav-item-uncontrolled-drilldown' | 'ds-left-nav-item-section' | 'ds-left-nav-item-separator' | 'ds-left-nav-item-text-label' | 'ds-left-nav-item-with-date'; interface ItemOptsT extends Record { label?: string | JSX.Element; labelBold?: boolean; labelColor?: [ColorsKey, keyof Theme['colors'][ColorsKey]]; labelOverflow?: LabelOveflowT; labelRightSection?: string | JSX.Element; selectable?: boolean; focuseable?: boolean; startOpened?: boolean; isOpened?: boolean; openable?: boolean; closable?: boolean; indent?: number; LeftComponent?: React.ComponentType; RightComponent?: React.ComponentType; BottomComponent?: React.ComponentType; ariaLabel?: string; ariaRole?: string; ariaLive?: string; ariaExpanded?: boolean; ariaDescribedBy?: string; items?: GenericItemItemProps[]; labelDataTestId?: string; skeletonVariant?: 'item' | 'subitem'; } interface ComponentProps { item: GenericItemItemProps; ctx: ContextProps; } interface GenericItemItemProps { dsId?: string; type?: string; CollapsedComponent?: React.ComponentType | null; Component?: React.ComponentType; itemOpts: ItemOptsT; } interface OutOfTheBoxMapItemT { item: GenericItemItemProps; } interface ItemRendererT { item: GenericItemItemProps; subitems?: JSX.Element[]; minHeight?: string; paddingTop?: string; onClick?: () => void; shadowStyle?: (opened: boolean, type?: string) => (theme: Theme) => string; hasBorderBottom?: boolean; borderBottomMr?: string; children: React.ReactNode; } } export declare const defaultProps: DSLeftNavigationT.DefaultProps; export declare const DSLeftNavigationPropTypes: DSPropTypesSchema; export declare const DSLeftNavigationPropTypesSchema: ValidationMap; export declare const DSLeftNavigationItemPropTypes: DSPropTypesSchema; export declare const DSLeftNavigationItemPropTypesSchema: ValidationMap; export declare const LeftNavItemPropsSchema: import("@elliemae/ds-props-helpers/dist/types/propTypes/types.js").DocumentedReactComponent; export declare const LeftNavItemOptionsSchema: import("@elliemae/ds-props-helpers/dist/types/propTypes/types.js").DocumentedReactComponent; export {};