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

interface ZTimelineItem {
    id?: string | number;
    title: string;
    description?: string;
    time?: string;
    subtitle?: string;
    company?: string;
    period?: string;
    technologies?: string[];
    icon?: ZIcon;
    active?: boolean;
    contentTemplate?: TemplateRef<unknown>;
}
type ZTimelineSize = 'sm' | 'default' | 'lg';
type ZTimelineLayout = 'default' | 'alternate' | 'career';

declare class ZTimelineComponent {
    readonly class: _angular_core.InputSignal<ClassValue>;
    readonly zItems: _angular_core.InputSignal<ZTimelineItem[]>;
    readonly zSize: _angular_core.InputSignal<ZTimelineSize>;
    readonly zLayout: _angular_core.InputSignal<ZTimelineLayout>;
    protected readonly hostClasses: _angular_core.Signal<string>;
    protected readonly dotClasses: _angular_core.Signal<string>;
    protected readonly innerDotClasses: _angular_core.Signal<string>;
    protected readonly badgeClasses: _angular_core.Signal<string>;
    protected readonly titleClasses: _angular_core.Signal<string>;
    protected readonly descriptionClasses: _angular_core.Signal<string>;
    protected readonly isCareer: _angular_core.Signal<boolean>;
    protected readonly isAlternate: _angular_core.Signal<boolean>;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZTimelineComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZTimelineComponent, "z-timeline", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zItems": { "alias": "zItems"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zLayout": { "alias": "zLayout"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare const zTimelineVariants: (props?: ({
    zSize?: "sm" | "default" | "lg" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
declare const zTimelineDotVariants: (props?: ({
    zSize?: "sm" | "default" | "lg" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
declare const zTimelineInnerDotVariants: (props?: ({
    zSize?: "sm" | "default" | "lg" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
declare const zTimelineTimeBadgeVariants: (props?: ({
    zSize?: "sm" | "default" | "lg" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
declare const zTimelineTitleVariants: (props?: ({
    zSize?: "sm" | "default" | "lg" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
declare const zTimelineDescriptionVariants: (props?: ({
    zSize?: "sm" | "default" | "lg" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
type ZTimelineVariants = VariantProps<typeof zTimelineVariants>;

export { ZTimelineComponent, zTimelineDescriptionVariants, zTimelineDotVariants, zTimelineInnerDotVariants, zTimelineTimeBadgeVariants, zTimelineTitleVariants, zTimelineVariants };
export type { ZTimelineItem, ZTimelineLayout, ZTimelineSize, ZTimelineVariants };
