import * as React from 'react';
import { type LucideIcon } from 'lucide-react';
import { ItemInlineActionButton } from '../../patterns/element-anatomy/item-anatomy';
/**
 * Breadcrumb — 顯示當前頁面在階層中的位置
 *
 * 基於 shadcn/ui Breadcrumb 結構(純 HTML nav + ol + li + a/span),
 * 橋接設計系統 token。
 *
 * ── 結構 ──
 *   <Breadcrumb>
 *     <BreadcrumbList size="md">
 *       <BreadcrumbItem>
 *         <BreadcrumbLink href="/projects">專案</BreadcrumbLink>
 *       </BreadcrumbItem>
 *       <BreadcrumbSeparator />
 *       <BreadcrumbItem>
 *         <BreadcrumbPage>目前頁面</BreadcrumbPage>
 *       </BreadcrumbItem>
 *     </BreadcrumbList>
 *   </Breadcrumb>
 *
 * ── Size(跟 page title 配對) ──
 *   sm  text-body(14)     → 建議配 text-h4(20) title —— Dialog / panel / drawer
 *   md  text-body(14)     → 建議配 text-h3(24) title —— 一般頁面 header (預設)
 *   lg  text-body-lg(16)  → 建議配 text-h2(32) title —— Detail page hero / landing
 *
 * ── 視覺 ──
 *   Link (預設): text-fg-secondary
 *   Link hover:  text-primary-hover (canonical「互動高亮」, 跟 Tabs / Chip 用法一致)
 *   Page (當前): text-foreground(不加粗 — 加粗會讓 breadcrumb 最右端視覺過重,見 spec)
 *   Separator:  ChevronRight (size 跟 list 一致), text-fg-muted
 *
 * ── 詳見 breadcrumb.spec.md ──
 */
type BreadcrumbSize = 'sm' | 'md' | 'lg';
declare const Breadcrumb: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
/**
 * Phase B(2026-05-10):declarative items mode 啟用 auto-collapse + auto-separator + auto-page-end。
 * 對齊 Material UI source `Breadcrumbs.js renderItemsBeforeAndAfter` mechanism(`maxItems`
 * default 8;本 DS 採 user-tuned 4 — 更積極 collapse 適合 single-line 緊湊 layout)。
 */
export interface BreadcrumbItemSpec {
    label: React.ReactNode;
    href?: string;
    asChild?: boolean;
    /**
     * 起始 icon(per `ui-development.md`「icon prop 命名 4 條」:slot 只接 icon → `startIcon`)。
     * 業界慣例:Breadcrumb 首項用 Home icon 強化視覺錨點(Material / Atlassian)。
     * 內部消費 `BREADCRUMB_ICON_SIZE[size]` SSOT(sm/md=16, lg=20,對齊 uiSize.spec.md Icon Size Tier)。
     * Consumer **不傳** size,DS 統一管。
     */
    startIcon?: LucideIcon;
}
interface BreadcrumbListProps extends Omit<React.ComponentPropsWithoutRef<'ol'>, 'children'> {
    /**
     * 字體尺寸 — 依據與之配對的 page title 選擇:
     *   sm  → 配 text-h4(20) title (Dialog / panel / drawer)
     *   md  → 配 text-h3(24) title (一般頁面 header,預設)
     *   lg  → 配 text-h2(32) title (Detail page hero / landing)
     */
    size?: BreadcrumbSize;
    /**
     * Declarative items mode(opt-in)。當 provided 時 `children` 被忽略,List 內部自動:
     *  - 插 separator
     *  - 末位 spec(無 `href`)自動 BreadcrumbPage(per Title-breadcrumb-end SSOT)
     *  - 超 `maxItems` auto-collapse 中段成 BreadcrumbEllipsis + DropdownMenu(對齊 Material UI
     *    source `renderItemsBeforeAndAfter`)
     */
    items?: BreadcrumbItemSpec[];
    /**
     * Auto-collapse 閾值。Default 4(user-tuned;Material UI source 預設 8)。`items.length > maxItems`
     * 才 collapse。
     */
    maxItems?: number;
    /** Collapse 後保留首 N 個(default 1)。對齊 Material UI source default。 */
    itemsBeforeCollapse?: number;
    /** Collapse 後保留末 N 個(default 1)。對齊 Material UI source default。 */
    itemsAfterCollapse?: number;
    children?: React.ReactNode;
}
declare const BreadcrumbList: React.ForwardRefExoticComponent<BreadcrumbListProps & React.RefAttributes<HTMLOListElement>>;
/**
 * Phase B(2026-05-10):`role` prop emit `data-bc-role` attr → CSS flex-shrink hierarchy。
 * Per BreadcrumbItem 在 row 中的角色決定 shrink 優先級:
 *   - `root`(首位)→ shrink:3(縮最積極;root context 可弱化)
 *   - `middle`(中段)→ shrink:2
 *   - `current`(末位 / page)→ shrink:1(最後縮;a11y current page anchor)
 *   - `ellipsis`(BreadcrumbEllipsis 包裝)→ shrink:0(永遠完整 ⋯)
 *
 * 設計回應 user 兩 challenges:
 *   (a) Root 也 truncate(shrink:3,不是 shrink-0)
 *   (b) 不用 fixed max-width — flex-shrink hierarchy 容器寬時自然展開不浪費空間,
 *       窄時按優先級縮 + TruncatedLabel 內部 CSS truncate + tooltip。
 */
interface BreadcrumbItemProps extends React.ComponentPropsWithoutRef<'li'> {
    role?: 'root' | 'middle' | 'current' | 'ellipsis';
}
declare const BreadcrumbItem: React.ForwardRefExoticComponent<BreadcrumbItemProps & React.RefAttributes<HTMLLIElement>>;
interface BreadcrumbLinkProps extends React.ComponentPropsWithoutRef<'a'> {
    /** 將樣式套用至子元件(e.g. React Router Link) */
    asChild?: boolean;
    /**
     * 起始 icon(per `ui-development.md`「icon prop 命名 4 條」:slot 只接 icon → `startIcon`)。
     * 內部消費 `BREADCRUMB_ICON_SIZE[size]` SSOT,DS 統一尺寸不允許 consumer override。
     * 對齊 uiSize.spec.md Icon Size Tier(2026-05-18 撤回 14 例外,統一 16/16/20)。
     */
    startIcon?: LucideIcon;
}
declare const BreadcrumbLink: React.ForwardRefExoticComponent<BreadcrumbLinkProps & React.RefAttributes<HTMLAnchorElement>>;
interface BreadcrumbPageProps extends React.ComponentPropsWithoutRef<'span'> {
    /** 起始 icon。內部消費 `BREADCRUMB_ICON_SIZE[size]` SSOT。對齊 BreadcrumbLink. */
    startIcon?: LucideIcon;
}
declare const BreadcrumbPage: React.ForwardRefExoticComponent<BreadcrumbPageProps & React.RefAttributes<HTMLSpanElement>>;
interface BreadcrumbSeparatorProps extends React.ComponentPropsWithoutRef<'li'> {
    children?: React.ReactNode;
}
declare const BreadcrumbSeparator: React.ForwardRefExoticComponent<BreadcrumbSeparatorProps & React.RefAttributes<HTMLLIElement>>;
/**
 * BreadcrumbEllipsis — 折疊路徑的 "⋯" 按鈕
 *
 * 2026-05-10 重寫:消費 `ItemInlineActionButton`(primitive SSOT)取代自刻 `<button>`。
 * Per inline-action.spec.md L106-131 predicate Q1+Q2+Q3 全指向 Inline Action:
 *   - Q1 點了要做事嗎?是(展開折疊路徑 dropdown)
 *   - Q2 位置?BreadcrumbList row inline flow(host 內)
 *   - Q3 row 多大?14-16px text row(compact tier)→ Inline Action
 * + 對齊 M1「視覺決策前必消費 SSOT」+ Mindset #2「優先消費既有」。
 *
 * 配合 DropdownMenuTrigger asChild 使用:
 *
 * ```tsx
 * <DropdownMenu>
 *   <DropdownMenuTrigger asChild>
 *     <BreadcrumbEllipsis />
 *   </DropdownMenuTrigger>
 *   <DropdownMenuContent>
 *     <DropdownMenuItem asChild><a href="/org">組織</a></DropdownMenuItem>
 *   </DropdownMenuContent>
 * </DropdownMenu>
 * ```
 *
 * `overlayTrigger=true` 視覺鎖:DropdownMenu open 期間 button 維持 hover bg(對齊
 * shadcn / Radix Themes / Material 的 overlay trigger canonical,inline-action.spec.md
 * 「Overlay trigger canonical」段)。
 */
type BreadcrumbEllipsisProps = Omit<React.ComponentPropsWithoutRef<typeof ItemInlineActionButton>, 'icon' | 'size'>;
declare const BreadcrumbEllipsis: React.ForwardRefExoticComponent<BreadcrumbEllipsisProps & React.RefAttributes<HTMLButtonElement>>;
export declare const breadcrumbMeta: {
    readonly component: "Breadcrumb";
    readonly family: null;
    readonly variants: {};
    readonly sizes: {};
    readonly states: readonly ["default", "hover", "active", "focus-visible", "disabled"];
    readonly tokens: {
        readonly bg: readonly [];
        readonly fg: readonly ["text-fg-muted", "text-fg-secondary", "text-foreground"];
        readonly ring: readonly ["ring-ring"];
    };
};
export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis, };
export type { BreadcrumbSize, BreadcrumbListProps, BreadcrumbEllipsisProps };
//# sourceMappingURL=breadcrumb.d.ts.map