import { LitElement } from 'lit';
import type { Constructor } from '../common/mixins/constructor.js';
import type { HorizontalTransitionAnimation, StepperOrientation, StepperStepType, StepperTitlePosition, StepperVerticalAnimation } from '../types.js';
import IgcStepComponent from './step.js';
import type { IgcStepperComponentEventMap } from './stepper.common.js';
declare const IgcStepperComponent_base: Constructor<import("../common/mixins/event-emitter.js").EventEmitterInterface<IgcStepperComponentEventMap>> & Constructor<LitElement>;
/**
 * IgxStepper provides a wizard-like workflow by dividing content into logical steps.
 *
 * @remarks
 * The stepper component allows the user to navigate between multiple steps.
 * It supports horizontal and vertical orientation as well as keyboard navigation and provides API methods to control the active step.
 *
 * @element igc-stepper
 *
 * @slot - Renders the step components inside default slot.
 *
 * @fires igcActiveStepChanging - Emitted when the active step is about to change.
 * @fires igcActiveStepChanged - Emitted when the active step is changed.
 */
export default class IgcStepperComponent extends IgcStepperComponent_base {
    static readonly tagName = "igc-stepper";
    protected static styles: import("lit").CSSResult;
    static register(): void;
    private readonly keyDownHandlers;
    private activeStep;
    private _shouldUpdateLinearState;
    /** Returns all of the stepper's steps. */
    steps: Array<IgcStepComponent>;
    /** Gets/Sets the orientation of the stepper.
     *
     * @remarks
     * Default value is `horizontal`.
     */
    orientation: StepperOrientation;
    /** Get/Set the type of the steps.
     *
     * @remarks
     * Default value is `full`.
     */
    stepType: StepperStepType;
    /**
     * Get/Set whether the stepper is linear.
     *
     * @remarks
     * If the stepper is in linear mode and if the active step is valid only then the user is able to move forward.
     */
    linear: boolean;
    /**
     * Get/Set whether the content is displayed above the steps.
     *
     * @remarks
     * Default value is `false` and the content is below the steps.
     */
    contentTop: boolean;
    /**
     * The animation type when in vertical mode.
     * @attr vertical-animation
     */
    verticalAnimation: StepperVerticalAnimation;
    /**
     * The animation type when in horizontal mode.
     * @attr horizontal-animation
     */
    horizontalAnimation: HorizontalTransitionAnimation;
    /**
     * The animation duration in either vertical or horizontal mode.
     * @attr animation-duration
     */
    animationDuration: number;
    /**
     * Get/Set the position of the steps title.
     *
     * @remarks
     * The default value is auto.
     * When the stepper is horizontally orientated the title is positioned below the indicator.
     * When the stepper is horizontally orientated the title is positioned on the right side of the indicator.
     */
    titlePosition: StepperTitlePosition;
    protected orientationChange(): void;
    protected stepTypeChange(): void;
    protected titlePositionChange(): void;
    protected contentTopChange(): void;
    protected linearChange(): void;
    protected animationTypeChange(): void;
    protected animationDurationChange(): void;
    constructor();
    connectedCallback(): void;
    private activateFirstStep;
    private animateSteps;
    private activateStep;
    private changeActiveStep;
    private moveToNextStep;
    private handleKeydown;
    private onHomeKey;
    private onEndKey;
    private onArrowDownKeyDown;
    private onArrowUpKeyDown;
    private onArrowRightKeyDown;
    private onArrowLeftKeyDown;
    private getNextStep;
    private getPreviousStep;
    private updateStepsLinearDisabled;
    private updateAnimation;
    private syncProperties;
    private stepsChanged;
    /** Activates the step at a given index. */
    navigateTo(index: number): void;
    /** Activates the next enabled step. */
    next(): void;
    /** Activates the previous enabled step. */
    prev(): void;
    /**
     * Resets the stepper to its initial state i.e. activates the first step.
     *
     * @remarks
     * The steps' content will not be automatically reset.
     */
    reset(): void;
    protected render(): import("lit-html").TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'igc-stepper': IgcStepperComponent;
    }
}
export {};
