import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { Nullable } from '@fundamental-ngx/cdk/utils';
import { WizardContentComponent } from '../wizard-content/wizard-content.component';
import { WizardStepIndicator } from '../models/wizard-step';
import { WizardComponentInterface } from '../wizard-injection-token';
import * as i0 from "@angular/core";
export type WizardStepStatus = 'completed' | 'current' | 'upcoming' | 'active';
export declare class WizardStepComponent implements OnChanges, AfterViewInit, OnDestroy {
    private _elRef;
    private _cdRef;
    private _wizard;
    /**
     * The aria-label for the step container.
     */
    ariaLabel: Nullable<string>;
    /**
     * @deprecated
     */
    ariaRoleDecription: string;
    /**
     * The type of step ('completed', 'current', 'upcoming', and 'active'.)
     */
    status: WizardStepStatus;
    /**
     * Whether or not this is a 'branching' step.
     */
    branching: boolean;
    /**
     * The label text.
     */
    label: string;
    /**
     * The smaller text for labeling the step as optional.
     */
    optionalText: string;
    /**
     * Whether or not this step is the summary page.
     */
    isSummary: boolean;
    /**
     * User-defined validation function which determines if user can navigate between steps.
     */
    stepClickValidator: (visited: boolean, completed: boolean) => boolean | Promise<boolean>;
    /**
     * Event emitted when the wizard step's status changes.
     */
    statusChange: EventEmitter<WizardStepStatus>;
    /**
     * Event emitted when a step is clicked.
     */
    stepClicked: EventEmitter<WizardStepComponent>;
    /**
     * Event emitted when a step indicator is clicked.
     */
    stepIndicatorItemClicked: EventEmitter<WizardStepComponent>;
    /** @hidden */
    content: WizardContentComponent;
    /** @hidden */
    stepIndicator: WizardStepIndicator<WizardStepComponent>;
    /** The wizard label span element. */
    wizardLabel: ElementRef;
    /** @hidden */
    progressBarLink: ElementRef;
    /** @hidden */
    glyph: string;
    /** @hidden */
    visited: boolean;
    /** @hidden */
    completed: boolean;
    /** @hidden */
    _stepId: number;
    /** @hidden */
    _finalStep: boolean;
    /** @hidden */
    _isValidated: boolean;
    /** @hidden */
    private _subscriptions;
    /** @hidden */
    constructor(_elRef: ElementRef, _cdRef: ChangeDetectorRef, _wizard: WizardComponentInterface);
    /** @hidden */
    ngOnChanges(changes: SimpleChanges): void;
    /** @hidden */
    ngAfterViewInit(): void;
    /** @hidden */
    ngOnDestroy(): void;
    /** @hidden */
    setFinalStep(val: boolean): void;
    /** @hidden */
    stepContainerKeypress(event?: KeyboardEvent): Promise<void>;
    /** @hidden */
    getClassList(): DOMTokenList;
    /** @hidden */
    hasLabel(label: string): boolean;
    /** @hidden */
    getStepClientWidth(): number;
    /** @hidden */
    removeFromDom(): void;
    /** @hidden */
    _summaryInit(): void;
    /** @hidden */
    _notSummaryInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<WizardStepComponent, [null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<WizardStepComponent, "[fd-wizard-step]", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaRoleDecription": { "alias": "ariaRoleDecription"; "required": false; }; "status": { "alias": "status"; "required": false; }; "branching": { "alias": "branching"; "required": false; }; "label": { "alias": "label"; "required": false; }; "optionalText": { "alias": "optionalText"; "required": false; }; "isSummary": { "alias": "isSummary"; "required": false; }; "stepClickValidator": { "alias": "stepClickValidator"; "required": false; }; }, { "statusChange": "statusChange"; "stepClicked": "stepClicked"; "stepIndicatorItemClicked": "stepIndicatorItemClicked"; }, ["content", "stepIndicator"], ["fd-wizard-step-indicator", "*"], true, never>;
}
