import React from 'react'; import propTypes from 'prop-types'; import { BreadcrumbAdapter } from '@douyinfe/semi-foundation/lib/es/breadcrumb/foundation'; import '@douyinfe/semi-foundation/lib/es/breadcrumb/breadcrumb.css'; import { noop } from '@douyinfe/semi-foundation/lib/es/utils/function'; import BaseComponent, { BaseProps } from '../_base/baseComponent'; import BreadcrumbItem, { RouteProps, BreadcrumbItemInfo } from './item'; import { BreadContextType } from './bread-context'; import { TooltipProps } from '../tooltip'; export type { RouteProps, BreadcrumbItemProps, BreadcrumbItemInfo } from './item'; export interface showToolTipProps { width?: string | number; ellipsisPos?: 'end' | 'middle'; opts?: TooltipProps; } export type MoreType = 'default' | 'popover'; export interface BreadcrumbProps extends BaseProps { routes?: Array; onClick?: (route: RouteProps, event: React.MouseEvent) => void; separator?: React.ReactNode; compact?: boolean; style?: React.CSSProperties; renderItem?: (route: RouteProps) => React.ReactNode; className?: string; showTooltip?: boolean | showToolTipProps; maxItemCount?: number; autoCollapse?: boolean; renderMore?: (restItem: Array) => React.ReactNode; moreType?: MoreType; 'aria-label'?: React.AriaAttributes['aria-label']; activeIndex?: number; } interface BreadcrumbState { isCollapsed: boolean; } declare class Breadcrumb extends BaseComponent { static contextType: React.Context; static Item: typeof BreadcrumbItem; static propTypes: { activeIndex: propTypes.Requireable; routes: propTypes.Requireable; onClick: propTypes.Requireable<(...args: any[]) => any>; separator: propTypes.Requireable; compact: propTypes.Requireable; children: propTypes.Requireable; style: propTypes.Requireable; renderItem: propTypes.Requireable<(...args: any[]) => any>; showTooltip: propTypes.Requireable>; ellipsisPos: propTypes.Requireable; opts: propTypes.Requireable; }>>>; className: propTypes.Requireable; autoCollapse: propTypes.Requireable; maxItemCount: propTypes.Requireable; renderMore: propTypes.Requireable<(...args: any[]) => any>; moreType: propTypes.Requireable; 'aria-label': propTypes.Requireable; }; static defaultProps: { routes: []; onClick: typeof noop; renderItem: undefined; separator: string; compact: boolean; showTooltip: { width: number; ellipsisPos: string; }; autoCollapse: boolean; moreType: string; maxItemCount: number; 'aria-label': string; }; constructor(props: BreadcrumbProps); get adapter(): BreadcrumbAdapter; componentDidMount(): void; componentWillUnmount(): void; renderPopoverMore(restItem: Array): React.JSX.Element; handleCollapse: (template: Array, itemsLen: number) => React.ReactNode[]; renderRouteItems: (items: Array, shouldCollapse: boolean, moreTypeIsPopover: boolean) => React.JSX.Element[]; renderList: () => Array; onClick: (info: BreadcrumbItemInfo, event: React.MouseEvent) => void; render(): React.JSX.Element; } export default Breadcrumb;