import { MXBaseComponent, MXInteractiveComponent } from '@acorex/cdk/common';
import * as i0 from '@angular/core';
import { AfterViewInit, TemplateRef } from '@angular/core';

interface AXBreadcrumbsItems {
    name?: string;
    icon?: string;
    text: string;
    tooltip?: string;
    iconClass?: string;
    disabled?: boolean;
    onClick?: (...args: any[]) => void;
}

/**
 * The Breadcrumbs component displays a navigation trail of links, helping users to track their location within an application's hierarchy.
 *
 * @category Components
 */
declare class AXBreadCrumbsComponent extends MXBaseComponent implements AfterViewInit {
    private readonly platformId;
    /**
     * Content child template for custom divider between breadcrumb items.
     */
    protected _divider: i0.Signal<TemplateRef<any>>;
    /**
     * View child template for the divider template.
     */
    dividerTemplate: i0.Signal<TemplateRef<any>>;
    /**
     * Scrolls the breadcrumbs container to the rightmost position after view initialization.
     * This ensures that the most recent breadcrumb items are visible when there are many items.
     */
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXBreadCrumbsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXBreadCrumbsComponent, "ax-breadcrumbs", never, {}, {}, ["_divider"], ["ax-breadcrumbs-item"], true, never>;
}

/**
 * Component representing an item in a breadcrumbs navigation.
 *
 * @category Components
 */
declare class AXBreadCrumbsItemComponent extends MXInteractiveComponent {
    /**
     * Reference to the parent breadcrumbs component.
     */
    _parent: AXBreadCrumbsComponent;
    /**
     * Indicates whether this breadcrumb item is the current active item.
     */
    active: boolean;
    /**
     * Host binding for CSS classes based on component state.
     * Applies 'ax-state-active' when active is true and 'ax-state-disabled' when disabled is true.
     */
    private get __hostClass();
    static ɵfac: i0.ɵɵFactoryDeclaration<AXBreadCrumbsItemComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXBreadCrumbsItemComponent, "ax-breadcrumbs-item", never, { "disabled": { "alias": "disabled"; "required": false; }; "active": { "alias": "active"; "required": false; }; }, {}, never, ["ax-prefix", "*", "ax-suffix"], true, never>;
}

declare class AXBreadcrumbsModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXBreadcrumbsModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXBreadcrumbsModule, never, [typeof AXBreadCrumbsComponent, typeof AXBreadCrumbsItemComponent], [typeof AXBreadCrumbsComponent, typeof AXBreadCrumbsItemComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXBreadcrumbsModule>;
}

export { AXBreadCrumbsComponent, AXBreadCrumbsItemComponent, AXBreadcrumbsModule };
export type { AXBreadcrumbsItems };
