import { ElementRef, OnInit, EventEmitter, QueryList, AfterContentInit } from '@angular/core';
import { CfCoreComponent } from '../core/core.component';
import { WizardModel } from '../../models/wizard/wizard.model';
import { WizardStylingModel } from '../../models/wizard/wizard-styling.model';
import { CfWizardStepComponent } from '../wizard-step/wizard-step.component';
import { TemplateService } from '../../services/template-service/template.service';
/**
 * <p>Wizard component based on Angular Material Tabs and Angular animations system</p>
 * <p>Example of using:</p>
 * <pre>
 * <code><</code>cf-wizard [properties]="myWizard" [styling]="myWizardStyles"<code>></code><code><</code><code>/</code>cf-wizard<code>></code>
 * </pre>
 */
export declare class CfWizardComponent extends CfCoreComponent implements OnInit, AfterContentInit {
    elementRef: ElementRef;
    /**
     * It is an WizardModel object with options to be rendered into component template
     */
    cfWizard: WizardModel;
    /**
     * It is an attribute <b>[properties]</b> of directive <b>cf-wizard</b> which take WizardModel object.
     * <p>Example of model:</p>
     * <pre>{
     *  showStepNumberAsIcon: true
     *  showStepNumberAsPrefix: true
     *  previousButton: this.myPrevBtn
     *  nextButton: this.myNextBtn
     *  finishButton: this.myDoneBtn
     * }</pre>
     * <h4>showStepNumberAsIcon: boolean</h4>
     * Showing step number as icon in wizard header steps buttons
     * <h4>showStepNumberAsPrefix: boolean</h4>
     * Showing step prefix as icon in wizard header steps buttons
     * <h4>previousButton: ButtonModel</h4>
     * ButtonModel object for wizard previous button
     * <h4>nextButton: ButtonModel</h4>
     * ButtonModel object for wizard next button
     * <h4>finishButton: ButtonModel</h4>
     * ButtonModel object for wizard finish button
     */
    properties: WizardModel;
    /**
     * It is an attribute <b>[styling]</b> of directive <b>cf-wizard</b> which take WizardStylingModel object with next properties:
     * <h4>container: StylingModel</h4>
     * Styling properties for main wizard container
     * <h4>previousButton: ButtonStylingModel</h4>
     * Styling properties for wizard previous button
     * <h4>nextButton: ButtonStylingModel</h4>
     * Styling properties for wizard next button
     * <h4>finishButton: ButtonStylingModel</h4>
     * Styling properties for wizard finish button
     */
    styling: WizardStylingModel;
    /**@hidden
     * It is an array of wizard steps
     */
    wizardSteps: QueryList<CfWizardStepComponent>;
    /**
     * @hidden
     * It is an array of wizard steps
     */
    private _steps;
    /**
     * @hidden
     * Property which means if wizard steps list container is scrollable based on wizard container width and total width of all steps
     */
    private _scrollable;
    /**
     * @hidden
     * Property which means if wizard Finish step was clicked
     */
    private _isCompleted;
    /**
     * @hidden
     * Property which means one step offset width to move steps list container to the left/right
     */
    private _scrollableStep;
    /**
     * @hidden
     * It is width in pixels and means how much wizard steps list container is bigger than wizard container
     */
    private _scrollableOffset;
    /**
     * @hidden
     * Current wizard step index
     */
    private _currentStepIndex;
    /**
     * @hidden
     * It is step part width which is hidden inside steps list container on init
     */
    private _scrollableStepLast;
    /**
     * @hidden
     * It is number which means how mush in pixels to move left/right steps list container
     */
    private _scrollablePosition;
    /**
     * @hidden
     * It is number of possible moving steps
     */
    private _availableScrollSteps;
    /**
     * @hidden
     * It is index of current step of all possible moving steps
     */
    private _currentAvailableStep;
    /**
     * @hidden
     * Link to wizard steps html section
     */
    wizardPaginationSection: any;
    /**
     * @hidden
     * Link to wizard steps html container
     */
    wizardPaginationContainer: any;
    /**
     * @hidden
     * Link to wizard steps html list container
     */
    wizardPaginationList: any;
    /**
     * @hidden
     * It is <b>(onStepChanged)</b> attribute of <b>cf-wizard</b> component. Is emmiting event with active step.
     */
    onStepChanged: EventEmitter<CfWizardStepComponent>;
    /**
     * @hidden
     * It is <b>(onComplete)</b> attribute of <b>cf-wizard</b> component. Is emmiting event to inform about finishing wizard steps work.
     */
    onComplete: EventEmitter<any>;
    /**
     * @hidden
     * */
    constructor(elementRef: ElementRef, /**@hidden */ templateService: TemplateService);
    /**
     * @hidden
     * Initialize all data
     */
    ngOnInit(): void;
    /**
     * @hidden
     * Angular 2 event triggered after component content was initialized. Here all steps are collected to an array and first array step became active.
     */
    ngAfterContentInit(): void;
    /**
     * @hidden
     * Checking changes in component properties. For now only is locking for steps valid states
     */
    ngDoCheck(): void;
    /**
     * @hidden
     * Private function to buils steps array
     */
    private readonly steps;
    /**
     * @hidden
     * Private function to set wizard state to completed
     */
    private readonly isCompleted;
    /**
     * @hidden
     * Private function to find active step
     */
    /**
     * @hidden
     * Private function to set active step
     */
    private activeStep;
    /**
     * @hidden
     * Private function to find active step index
     */
    private readonly activeStepIndex;
    /**
     * @hidden
     * Private function to set if step has next step
     */
    private readonly hasNextStep;
    /**
     * @hidden
     * Private function to set if step has previous step
     */
    private readonly hasPrevStep;
    /**
     * @hidden
     * Function to calculate possible scroll steps
     */
    calculatePossibleScrollSteps(): void;
    /**
     * @hidden
     * Function make wizard scrollable
     */
    makeScrollable(): boolean;
    /**
     * @hidden
     * Function to take wizard scrollable length
     */
    takeScrollableOffset(): void;
    /**
     * @hidden
     * Function to make wizard scrollable step
     */
    makeScrollableStep(): void;
    /**
     * @hidden
     * Function to check wizard scrollable position
     */
    checkScrollablePosition(): void;
    /**
     * @hidden
     * Function to move wizard steps to the right
     */
    moveRight(): void;
    /**
     * @hidden
     * Function to move wizard steps to the left
     */
    moveLeft(): void;
    /**
     * @hidden
     * Function to set animation to each step according to active step index
     * @param step  it is json step object
     * @param stepIndex  it is step index
     */
    setStepsAnmations(step: CfWizardStepComponent, stepIndex: number): void;
    /**
     * @hidden
     * Function to go to wizard step
     * @param step  it is json step object
     * @param stepIndex  it is step index
     */
    goToStep(step: CfWizardStepComponent, stepIndex: number): void;
    /**
     * @hidden
     * Function to go to the next step
     */
    next(): void;
    /**
     * @hidden
     * Function to go to the previous step
     */
    previous(): void;
    /**
     * @hidden
     * Function to set wizard to completed state and emit event for that
     */
    complete(): void;
    /**
     * @hidden
     * Function for checking invalid steps and manipulate with wizard button disable states
     */
    findInvalidStep(): void;
}
