import { Direction } from '@angular/cdk/bidi';
import * as i0 from '@angular/core';
import { OnInit, TemplateRef, ElementRef, OnChanges, AfterContentInit, QueryList, EventEmitter, SimpleChanges } from '@angular/core';
import { NzSizeDSType, NgClassType, BooleanInput } from 'ng-zorro-antd/core/types';
import { Subject } from 'rxjs';
import { NzProgressFormatter } from 'ng-zorro-antd/progress';

declare class NzStepComponent implements OnInit {
    private cdr;
    private destroyRef;
    processDotTemplate?: TemplateRef<void>;
    itemContainer: ElementRef<HTMLElement>;
    nzTitle?: string | TemplateRef<void>;
    nzSubtitle?: string | TemplateRef<void>;
    nzDescription?: string | TemplateRef<void>;
    nzDisabled: boolean;
    nzPercentage: number | null;
    nzSize: NzSizeDSType;
    get nzStatus(): string;
    set nzStatus(status: string);
    isCustomStatus: boolean;
    private _status;
    get nzIcon(): NgClassType | TemplateRef<void> | undefined;
    set nzIcon(value: NgClassType | TemplateRef<void> | undefined);
    oldAPIIcon: boolean;
    private _icon?;
    customProcessTemplate?: TemplateRef<{
        $implicit: TemplateRef<void>;
        status: string;
        index: number;
    }>;
    direction: string;
    index: number;
    last: boolean;
    outStatus: string;
    showProcessDot: boolean;
    clickable: boolean;
    clickOutsideAngular$: Subject<number>;
    readonly nullProcessFormat: NzProgressFormatter;
    get showProgress(): boolean;
    get currentIndex(): number;
    set currentIndex(current: number);
    private _currentIndex;
    ngOnInit(): void;
    enable(): void;
    disable(): void;
    markForCheck(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzStepComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzStepComponent, "nz-step", ["nzStep"], { "nzTitle": { "alias": "nzTitle"; "required": false; }; "nzSubtitle": { "alias": "nzSubtitle"; "required": false; }; "nzDescription": { "alias": "nzDescription"; "required": false; }; "nzDisabled": { "alias": "nzDisabled"; "required": false; }; "nzPercentage": { "alias": "nzPercentage"; "required": false; }; "nzSize": { "alias": "nzSize"; "required": false; }; "nzStatus": { "alias": "nzStatus"; "required": false; }; "nzIcon": { "alias": "nzIcon"; "required": false; }; }, {}, never, never, true, never>;
    static ngAcceptInputType_nzDisabled: unknown;
}

/**
 * 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 NzDirectionType = 'horizontal' | 'vertical';
type NzStatusType = 'wait' | 'process' | 'finish' | 'error';
type NzProgressDotTemplate = TemplateRef<{
    $implicit: TemplateRef<void>;
    status: string;
    index: number;
}>;
declare class NzStepsComponent implements OnChanges, OnInit, AfterContentInit {
    static ngAcceptInputType_nzProgressDot: BooleanInput | NzProgressDotTemplate | undefined | null;
    private cdr;
    private ngZone;
    private directionality;
    private destroyRef;
    steps: QueryList<NzStepComponent>;
    nzCurrent: number;
    nzDirection: NzDirectionType;
    nzLabelPlacement: 'horizontal' | 'vertical';
    nzType: 'default' | 'navigation';
    nzSize: NzSizeDSType;
    nzStartIndex: number;
    nzStatus: NzStatusType;
    set nzProgressDot(value: boolean | NzProgressDotTemplate | undefined | null);
    readonly nzIndexChange: EventEmitter<number>;
    private indexChangeSubscription;
    showProcessDot: boolean;
    showProgress: boolean;
    customProcessDotTemplate?: TemplateRef<{
        $implicit: TemplateRef<void>;
        status: string;
        index: number;
    }>;
    dir: Direction;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngAfterContentInit(): void;
    private updateHostProgressClass;
    private updateChildrenSteps;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzStepsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzStepsComponent, "nz-steps", ["nzSteps"], { "nzCurrent": { "alias": "nzCurrent"; "required": false; }; "nzDirection": { "alias": "nzDirection"; "required": false; }; "nzLabelPlacement": { "alias": "nzLabelPlacement"; "required": false; }; "nzType": { "alias": "nzType"; "required": false; }; "nzSize": { "alias": "nzSize"; "required": false; }; "nzStartIndex": { "alias": "nzStartIndex"; "required": false; }; "nzStatus": { "alias": "nzStatus"; "required": false; }; "nzProgressDot": { "alias": "nzProgressDot"; "required": false; }; }, { "nzIndexChange": "nzIndexChange"; }, ["steps"], ["*"], true, never>;
}

declare class NzStepsModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NzStepsModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NzStepsModule, never, [typeof NzStepsComponent, typeof NzStepComponent], [typeof NzStepsComponent, typeof NzStepComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NzStepsModule>;
}

export { NzStepComponent, NzStepsComponent, NzStepsModule };
export type { NzDirectionType, NzProgressDotTemplate, NzStatusType };
