interface BreadcrumbItemData<T = unknown> {
    title: string;
    href?: string;
    meta?: T;
}
interface BreadcrumbItemProps<T = unknown> {
    title: string;
    href: string;
    meta?: T;
    children: React.ReactNode;
}
interface BreadcrumbPageProps<T = unknown> {
    title: string;
    meta?: T;
    children: ((items: Array<BreadcrumbItemData<T>>) => React.ReactNode) | React.ReactElement;
}
type BreadcrumbPortalTargetProps<E extends React.ElementType = 'div'> = Omit<React.ComponentPropsWithoutRef<E>, 'children' | 'ref'> & {
    as?: E | null;
    ssrFallback?: React.ReactNode | null;
};
/** @see https://foxact.skk.moe/breadcrumbs */
declare function createBreadcrumbs<T = unknown>(name?: string): [
    BreadcrumbProvider: React.ComponentType<React.PropsWithChildren>,
    BreadcrumbPortalTarget: <E extends React.ElementType = 'div'>(props: BreadcrumbPortalTargetProps<E>) => React.ReactNode,
    BreadcrumbSegment: (props: BreadcrumbItemProps<T>) => React.ReactNode,
    BreadcrumbCurrent: (props: BreadcrumbPageProps<T>) => React.ReactNode | null,
    useBreadcrumbs: () => Array<BreadcrumbItemData<T>>
];

export { createBreadcrumbs };
export type { BreadcrumbItemData, BreadcrumbItemProps, BreadcrumbPageProps, BreadcrumbPortalTargetProps };
