import { Observable } from 'rxjs';
import { BreadCrumbItem } from './item/breadcrumb-item.model';
import * as i0 from "@angular/core";
export declare class EuiBreadcrumbService {
    /**
     * An observable on which observers can be notified on breadcrumb changes
     */
    breadcrumbs$: Observable<BreadCrumbItem[]>;
    /**
     * A behavior subject to emit breadcrumb whenever that changes
     */
    private breadcrumbsSource$;
    /**
     * An array to hold BreadCrumbItem metadata used to render the BreadCrumbItem
     */
    private breadcrumb;
    constructor();
    /**
     * Adds a new BreadCrumbItem into the breadcrumb
     *
     * @param breadCrumbItem The BreadCrumbItem you want to insert in trail
     * @param [after] The ID of the BreadCrumbItem after given one will be inserted.
     * @param [removeAfter=false] All crumbs after given ID will be removed.
     * @throws Will throw an error if given after ID is not found on current trail.
     */
    addCrumb(breadCrumbItem: BreadCrumbItem, after?: string, removeAfter?: boolean): void;
    /**
     * Remove a BreadCrumbItem based on a given ID
     * @param id Optional: The ID of BreadCrumbItem to be removed
     *           If no id provided then the last item will be popped.
     */
    removeCrumb(id?: string): void;
    /**
     * Update a specific entry in the data structure
     *
     * @param BreadCrumbItem The BreadCrumbItem to match and update
     * @throws Will throw an Error if BreadCrumbItem is not part of the breadcrumb
     */
    updateCrumb(item: BreadCrumbItem): void;
    /**
     * Returns current breadcrumb
     */
    getBreadcrumb(): BreadCrumbItem[];
    /**
     * Sets the breadcrumb
     */
    setBreadcrumb(breadcrumb: BreadCrumbItem[]): void;
    static ɵfac: i0.ɵɵFactoryDef<EuiBreadcrumbService, never>;
    static ɵprov: i0.ɵɵInjectableDef<EuiBreadcrumbService>;
}
