import * as _angular_core from '@angular/core';
import { ZIcon } from '@shival99/z-ui/components/z-icon';
import { ClassValue } from 'clsx';
import * as class_variance_authority_types from 'class-variance-authority/types';
import { VariantProps } from 'class-variance-authority';

interface ZBreadcrumbItem {
    label: string;
    path?: string;
    icon?: ZIcon;
    disabled?: boolean;
}

declare class ZBreadcrumbComponent {
    readonly zItemClick: _angular_core.OutputEmitterRef<ZBreadcrumbItem>;
    readonly class: _angular_core.InputSignal<ClassValue>;
    readonly zItems: _angular_core.InputSignal<ZBreadcrumbItem[]>;
    readonly zSize: _angular_core.InputSignal<"sm" | "default" | "lg" | null | undefined>;
    readonly zSeparator: _angular_core.InputSignal<string>;
    readonly zSeparatorSize: _angular_core.InputSignal<string | number | null | undefined>;
    readonly zHomeIcon: _angular_core.InputSignal<ZIcon | undefined>;
    readonly zShowHome: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
    protected readonly listClasses: _angular_core.Signal<string>;
    protected readonly homeClasses: _angular_core.Signal<string>;
    protected readonly separatorClasses: _angular_core.Signal<string>;
    protected readonly separatorIsIcon: _angular_core.Signal<boolean>;
    protected readonly displayItems: _angular_core.Signal<{
        isLast: boolean;
        className: string;
        label: string;
        path?: string;
        icon?: ZIcon;
        disabled?: boolean;
    }[]>;
    protected onItemClick(item: ZBreadcrumbItem, isLast: boolean): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZBreadcrumbComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZBreadcrumbComponent, "z-breadcrumb", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zItems": { "alias": "zItems"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zSeparator": { "alias": "zSeparator"; "required": false; "isSignal": true; }; "zSeparatorSize": { "alias": "zSeparatorSize"; "required": false; "isSignal": true; }; "zHomeIcon": { "alias": "zHomeIcon"; "required": false; "isSignal": true; }; "zShowHome": { "alias": "zShowHome"; "required": false; "isSignal": true; }; }, { "zItemClick": "zItemClick"; }, never, never, true, never>;
}

declare const zBreadcrumbVariants: (props?: ({
    zSize?: "sm" | "default" | "lg" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
type ZBreadcrumbVariants = VariantProps<typeof zBreadcrumbVariants>;

export { ZBreadcrumbComponent, zBreadcrumbVariants };
export type { ZBreadcrumbItem, ZBreadcrumbVariants };
