import { ScrollDispatcher } from "@angular/cdk/overlay";
import { AfterContentInit, AfterViewChecked, ChangeDetectorRef, ComponentFactoryResolver, DoCheck, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from "@angular/core";
import { BehaviorSubject } from "rxjs";
import { IEvent, LoggerService } from "@nova-ui/bits";
import { DashwizStepComponent } from "../dashwiz-step/dashwiz-step.component";
import { IDashwizButtonsComponent, IDashwizStepComponent, IDashwizStepNavigatedEvent, IDashwizWaitEvent } from "../types";
import { DashwizService } from "./dashwiz.service";
import { IDashwizComponent } from "./model";
import * as i0 from "@angular/core";
/**
 * Component that provides wizard functionality.
 */
export declare class DashwizComponent implements OnInit, AfterContentInit, AfterViewChecked, OnDestroy, DoCheck, IDashwizComponent {
    private changeDetector;
    private componentFactoryResolver;
    private logger;
    private dashwizService;
    private scrollDispatcher;
    private static placeholderFinishText;
    steps: QueryList<DashwizStepComponent>;
    stepTitles: QueryList<ElementRef>;
    dynamicStep: any;
    /**
     * Set to true to hide the wizard header including the step breadcrumbs.
     * (default: false)
     */
    hideHeader: boolean;
    /**
     * Set to true to show the "Next" button at any point during the wizard process.
     * (default: false)
     */
    canProceed: boolean;
    /**
     * Set to true to show the "Finish" button at any point during the wizard process.
     * (default: false)
     */
    canFinish: boolean;
    /**
     * Overrides the default text on the finish step button.
     * (default: 'Action')
     */
    finishText: string;
    /**
     * Use this to stretch lines between step labels according to largest label width.
     * (default: false)
     */
    stretchStepLines: boolean;
    /**
     * Optional components to use for the buttons for each step
     */
    buttonComponentTypes: string[];
    /**
     * Evaluated when a step is selected.
     */
    stepNavigated: EventEmitter<IDashwizStepNavigatedEvent>;
    /**
     * Evaluated when the user attempts to cancel the wizard.
     */
    cancel: EventEmitter<boolean>;
    /**
     * Evaluated when the user completes the wizard.
     */
    finish: EventEmitter<any>;
    /**
     * Emits when next button is clicked.
     */
    next: EventEmitter<any>;
    /**
     * Emits when Back button is clicked.
     */
    back: EventEmitter<any>;
    /**
     * Use this BehaviorSubject to control navigability between steps
     */
    navigationControl: BehaviorSubject<IDashwizWaitEvent>;
    currentStep: DashwizStepComponent;
    stepLineWidth: number;
    stepIndex: number;
    buttonProperties: IDashwizButtonsComponent;
    scrolled: boolean;
    private stepNavigatedEvent;
    private previousStepIndex;
    private futureStep?;
    private arraySteps;
    constructor(changeDetector: ChangeDetectorRef, componentFactoryResolver: ComponentFactoryResolver, logger: LoggerService, dashwizService: DashwizService, scrollDispatcher: ScrollDispatcher);
    ngOnInit(): void;
    ngDoCheck(): void;
    ngAfterContentInit(): void;
    ngAfterViewChecked(): void;
    ngOnDestroy(): void;
    addStepDynamic(wizardStep: IDashwizStepComponent, indexToInsert: number): void;
    disableStep(step: DashwizStepComponent): void;
    enableStep(step: DashwizStepComponent): void;
    hideStep(step: DashwizStepComponent): void;
    showStep(step: DashwizStepComponent): void;
    goToStep(stepIndex: number): void;
    selectStep(step: DashwizStepComponent): void;
    onBack: () => void;
    onNext: () => void;
    onFinish: () => void;
    onCancel: () => void;
    buttonPortalActionMap: Record<string, Function>;
    enterAnotherStep(): void;
    onButtonPortalOutput(event: IEvent): void;
    private disableFollowingSteps;
    private enableFollowingSteps;
    private handleStepControl;
    private getLargestLabelWidth;
    static ɵfac: i0.ɵɵFactoryDeclaration<DashwizComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DashwizComponent, "nui-dashwiz", never, { "hideHeader": { "alias": "hideHeader"; "required": false; }; "canProceed": { "alias": "canProceed"; "required": false; }; "canFinish": { "alias": "canFinish"; "required": false; }; "finishText": { "alias": "finishText"; "required": false; }; "stretchStepLines": { "alias": "stretchStepLines"; "required": false; }; "buttonComponentTypes": { "alias": "buttonComponentTypes"; "required": false; }; "navigationControl": { "alias": "navigationControl"; "required": false; }; }, { "stepNavigated": "stepNavigated"; "cancel": "cancel"; "finish": "finish"; "next": "next"; "back": "back"; }, ["steps"], ["*"], false, never>;
}
