import type { App, Ref } from 'vue'; import type { BreadcrumbItem } from './types'; /** * Opt-in imperative breadcrumb trail. Derivation (registry / route-meta / * explicit `:items`) is the default + recommended path — reach for the * manager only for genuinely non-route-driven flows (wizard / stack-style * UIs) where you push and pop the trail by hand. * * Bind the reactive `items` into a breadcrumb: destructure so the template * unwraps the ref — * `const { items, push, pop } = useBreadcrumb()` → ``. */ export type BreadcrumbManager = { /** Reactive trail. Destructure before binding so the template unwraps it. */ items: Ref; /** Append a crumb (descend into a child). */ push: (item: BreadcrumbItem) => void; /** Remove and return the last crumb (ascend to the parent). */ pop: () => BreadcrumbItem | undefined; /** Replace the whole trail. */ replace: (items: BreadcrumbItem[]) => void; /** Reset to the initial trail passed at creation. */ reset: () => void; }; export declare function createBreadcrumbManager(initial?: BreadcrumbItem[]): BreadcrumbManager; /** * Provide an **app-scoped** breadcrumb manager (one per app via * `provide`/`inject`, NOT a module singleton — a singleton would leak the * trail across concurrent SSR requests). Called from the package * `install()`; also callable directly to seed an initial trail. */ export declare function provideBreadcrumbManager(manager?: BreadcrumbManager, app?: App): BreadcrumbManager; /** Inject the app-scoped breadcrumb manager. Throws when none is installed. */ export declare function useBreadcrumb(app?: App): BreadcrumbManager; //# sourceMappingURL=use-breadcrumb.d.ts.map