import * as i0 from '@angular/core';
import { OnChanges, TemplateRef, SimpleChanges, AfterContentInit, OnInit, QueryList } from '@angular/core';
import * as _angular_cdk_bidi from '@angular/cdk/bidi';
import { ReplaySubject } from 'rxjs';

/**
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
type NzTimelineMode = 'left' | 'alternate' | 'right' | 'custom';
type NzTimelinePosition = 'left' | 'right';
declare const TimelineTimeDefaultColors: readonly ["red", "blue", "green", "grey", "gray"];
type NzTimelineItemColor = (typeof TimelineTimeDefaultColors)[number] | string;

/**
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */

declare class NzTimelineItemComponent implements OnChanges {
    private cdr;
    private timelineService;
    template: TemplateRef<void>;
    nzPosition?: NzTimelinePosition;
    nzColor: NzTimelineItemColor;
    nzDot?: string | TemplateRef<void>;
    nzLabel?: string | TemplateRef<void>;
    isLast: boolean;
    borderColor: string | null;
    position?: NzTimelinePosition;
    ngOnChanges(changes: SimpleChanges): void;
    detectChanges(): void;
    private updateCustomColor;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTimelineItemComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTimelineItemComponent, "nz-timeline-item, [nz-timeline-item]", ["nzTimelineItem"], { "nzPosition": { "alias": "nzPosition"; "required": false; }; "nzColor": { "alias": "nzColor"; "required": false; }; "nzDot": { "alias": "nzDot"; "required": false; }; "nzLabel": { "alias": "nzLabel"; "required": false; }; }, {}, never, ["*"], true, never>;
}

declare class NzTimelineComponent implements AfterContentInit, OnChanges, OnInit {
    private cdr;
    private timelineService;
    protected readonly dir: i0.WritableSignal<_angular_cdk_bidi.Direction>;
    private destroyRef;
    listOfItems: QueryList<NzTimelineItemComponent>;
    nzMode: NzTimelineMode;
    nzPending?: string | boolean | TemplateRef<void>;
    nzPendingDot?: string | TemplateRef<void>;
    nzReverse: boolean;
    isPendingBoolean: boolean;
    timelineItems: NzTimelineItemComponent[];
    hasLabelItem: boolean;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngAfterContentInit(): void;
    private updateChildren;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTimelineComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTimelineComponent, "nz-timeline", ["nzTimeline"], { "nzMode": { "alias": "nzMode"; "required": false; }; "nzPending": { "alias": "nzPending"; "required": false; }; "nzPendingDot": { "alias": "nzPendingDot"; "required": false; }; "nzReverse": { "alias": "nzReverse"; "required": false; }; }, {}, ["listOfItems"], ["*"], true, never>;
    static ngAcceptInputType_nzReverse: unknown;
}

declare class NzTimelineModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTimelineModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NzTimelineModule, never, [typeof NzTimelineItemComponent, typeof NzTimelineComponent], [typeof NzTimelineItemComponent, typeof NzTimelineComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NzTimelineModule>;
}

declare class TimelineService {
    check$: ReplaySubject<void>;
    markForCheck(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TimelineService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TimelineService>;
}

export { NzTimelineComponent, NzTimelineItemComponent, NzTimelineModule, TimelineService };
export type { NzTimelineItemColor, NzTimelineMode, NzTimelinePosition };
