import { type AnchorHTMLAttributes, type ComponentPropsWithoutRef, type ReactElement, type ReactNode } from 'react';
import { type VariantProps } from 'class-variance-authority';
type SeparatorVariant = 'chevron' | 'slash';
export interface BreadcrumbProps extends Omit, 'id'> {
/** Override the default `aria-label` (falls back to translated `ui.navigation.breadcrumb.label`). */
'aria-label'?: string;
/** Separator glyph between items. @default 'chevron' */
separator?: SeparatorVariant;
/** Maximum number of visible crumbs before collapsing. @default 4 */
maxItems?: number;
/** Items kept visible at the start. @default 1 */
itemsBeforeCollapse?: number;
/** Items kept visible at the end. @default 1 */
itemsAfterCollapse?: number;
/** If true, disables collapse behaviour. */
disableCollapse?: boolean;
/**
* Consumer-supplied instance id, surfaced as `data-component-id` so an
* agent / UI bridge can address this instance.
*/
id?: string;
}
/**
* Imperative handle for agent-readiness.
*
* Items expose their stable id (`BreadcrumbItem` `id` prop, falling back
* to the `BreadcrumbLink` href) and href — never their visible label,
* which may contain PHI (see PRS §26 §6.1).
*/
export interface BreadcrumbHandle {
getItems: () => Array<{
id: string;
href?: string;
}>;
navigateTo: (id: string) => void;
}
declare const Breadcrumb: import("react").ForwardRefExoticComponent>;
export interface BreadcrumbListProps extends ComponentPropsWithoutRef<'ol'> {
maxItems?: number;
itemsBeforeCollapse?: number;
itemsAfterCollapse?: number;
disableCollapse?: boolean;
}
declare const BreadcrumbList: import("react").ForwardRefExoticComponent>;
export interface BreadcrumbItemProps extends ComponentPropsWithoutRef<'li'> {
/** Set automatically by `BreadcrumbList` on the final item. */
isCurrent?: boolean;
}
declare const BreadcrumbItem: import("react").ForwardRefExoticComponent>;
export interface BreadcrumbLinkProps extends AnchorHTMLAttributes {
/** Use Radix `Slot` so consumers can pass a router link. */
asChild?: boolean;
/** Set by the parent Item when this is the current page. */
isCurrent?: boolean;
}
declare const BreadcrumbLink: import("react").ForwardRefExoticComponent>;
declare const separatorVariants: (props?: ({
variant?: "chevron" | "slash" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export interface BreadcrumbSeparatorProps extends Omit, 'children'>, VariantProps {
children?: ReactNode;
}
declare const BreadcrumbSeparator: import("react").ForwardRefExoticComponent>;
export interface BreadcrumbEllipsisProps extends ComponentPropsWithoutRef<'button'> {
/** Hidden crumb elements rendered inside the dropdown menu. */
hiddenItems?: ReactElement[];
}
declare const BreadcrumbEllipsis: import("react").ForwardRefExoticComponent>;
export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbSeparator, BreadcrumbEllipsis, };
//# sourceMappingURL=breadcrumb.d.ts.map