import { Type } from '@angular/core';
import { WizardBuilderInterface } from './models/wizard-builder-interface';
import { WizardNavigationInterface } from './models/wizard-navigation-interface';
import { WizardNavigationSet } from './models/wizard-navigation-set';
/**
 * Wizard navigation information class.
 */
export declare class WizardNavigationInformation {
    static readonly NoStageNoStep = -1;
    private wizard;
    private wizardBuilder;
    /**
     * The history of navigation of stage and step.
     */
    private history;
    /**
     * The initialization state.
     */
    private initialized;
    /**
     * Initializes a new instance of the WizardNavigationInformation class.
     *
     * @param wizard the wizard component instance.
     */
    constructor(wizard: WizardNavigationInterface, wizardBuilder: WizardBuilderInterface);
    /**
     * Gets the navigation history data.
     */
    get navigationHistory(): WizardNavigationSet[];
    /**
     * Gets the prior navigation set.
     */
    get priorSet(): WizardNavigationSet;
    /**
     * Gets the current navigation set.
     */
    get currentSet(): WizardNavigationSet;
    /**
     * Gets if it was Next button click.
     */
    get wasNext(): boolean;
    /**
     * Gets if it was Back button click.
     */
    get wasBack(): boolean;
    /**
     * Gets if it's on the last step of current stage.
     */
    get onLastStepOfStage(): boolean;
    /**
     * Gets if it's on the last stage.
     */
    get onLastStage(): boolean;
    /**
     * Gets if it's on last steps of last stage.
     */
    get onLastStepOfLastStage(): boolean;
    /**
     * Set and start new history.
     *
     * @param set the new navigation set.
     */
    resetHistory(set?: WizardNavigationSet): void;
    /**
     * Push new navigation set to the history.
     *
     * @param set the new navigation set.
     */
    pushHistory(set: WizardNavigationSet): boolean;
    /**
     * Check how many times visited including current set.
     * (it shows '1' if this is the first time visit.)
     *
     * @param set current set.
     */
    checkHistory(set?: WizardNavigationSet): number;
    /**
     * Creates a new WizardStep, and adds it to the specified WizardStage.
     * If the specified WizardStage does not exist, it will be created.
     *
     * @param stepName - The name for the new WizardStep.
     * @param stepComponentType - The componentType for the new WizardStep.
     * @param stageName - The name of the WizardStage in which this new WizardStep should be added.
     */
    addStepInStage(stepName: string, stepComponentType: Type<any>, stageName: string): void;
    /**
     * Creates a new WizardStep, and adds it to the specified WizardStage at the specified index.
     * If the specified WizardStage does not exist, it will be created.
     *
     * @param stepName - The name for the new WizardStep.
     * @param stepComponentType - The componentType for the new WizardStep.
     * @param stageName - The name of the WizardStage in which this new WizardStep should be added.
     * @param index - The step index to insert step (will increase index of existing step at given index by 1 if any)
     */
    addStepInStageByIndex(stepName: string, stepComponentType: Type<any>, stageName: string, index: number): void;
    /**
     * Removes WizardStep at specified index in specified stage.
     * If the specified stage or index does not exist, false will be returned.
     *
     * @param stageName - The name of the Wizard stage in which to remove the step.
     * @param index - The step index to be removed (will decrease indices of proceeding steps)
     * @returns - True if step is removed successfully, false otherwise.
     */
    removeStepInStageByIndex(stageName: string, index: number): boolean;
    /**
     * Creates a new WizardStage at the specified index.
     *
     * @param stageName - The Name for the new WizardStage
     * @param index - The stage index to insert stage (will increase index of existing stage at given index by 1 if any)
     */
    addStageByIndex(stageName: string, index: number): void;
    /**
     * Clears all steps from given stage.
     * If the specified stage does not exist, false will be returned.
     *
     * @param stageName - The name of the Wizard stage to clear steps from.
     * @returns - True if stage is cleared successfully, false otherwise.
     */
    clearStage(stageName: string): boolean;
}
