import React from 'react';
import propTypes from 'prop-types';
import { BreadcrumbAdapter } from '@douyinfe/semi-foundation/lib/cjs/breadcrumb/foundation';
import '@douyinfe/semi-foundation/lib/cjs/breadcrumb/breadcrumb.css';
import { noop } from '@douyinfe/semi-foundation/lib/cjs/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<RouteProps | string>;
    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>) => React.ReactNode;
    moreType?: MoreType;
    'aria-label'?: React.AriaAttributes['aria-label'];
    activeIndex?: number;
}
interface BreadcrumbState {
    isCollapsed: boolean;
}
declare class Breadcrumb extends BaseComponent<BreadcrumbProps, BreadcrumbState> {
    static contextType: React.Context<BreadContextType>;
    static Item: typeof BreadcrumbItem;
    static propTypes: {
        activeIndex: propTypes.Requireable<number>;
        routes: propTypes.Requireable<any[]>;
        onClick: propTypes.Requireable<(...args: any[]) => any>;
        separator: propTypes.Requireable<propTypes.ReactNodeLike>;
        compact: propTypes.Requireable<boolean>;
        children: propTypes.Requireable<propTypes.ReactNodeLike>;
        style: propTypes.Requireable<object>;
        renderItem: propTypes.Requireable<(...args: any[]) => any>;
        showTooltip: propTypes.Requireable<NonNullable<boolean | propTypes.InferProps<{
            width: propTypes.Requireable<NonNullable<string | number>>;
            ellipsisPos: propTypes.Requireable<string>;
            opts: propTypes.Requireable<object>;
        }>>>;
        className: propTypes.Requireable<string>;
        autoCollapse: propTypes.Requireable<boolean>;
        maxItemCount: propTypes.Requireable<number>;
        renderMore: propTypes.Requireable<(...args: any[]) => any>;
        moreType: propTypes.Requireable<string>;
        'aria-label': propTypes.Requireable<string>;
    };
    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<BreadcrumbProps, BreadcrumbState>;
    componentDidMount(): void;
    componentWillUnmount(): void;
    renderPopoverMore(restItem: Array<React.ReactNode>): React.JSX.Element;
    handleCollapse: (template: Array<React.ReactNode>, itemsLen: number) => React.ReactNode[];
    renderRouteItems: (items: Array<RouteProps>, shouldCollapse: boolean, moreTypeIsPopover: boolean) => React.JSX.Element[];
    renderList: () => Array<React.ReactNode>;
    onClick: (info: BreadcrumbItemInfo, event: React.MouseEvent) => void;
    render(): React.JSX.Element;
}
export default Breadcrumb;
