import SgdsElement from "../../base/sgds-element";
import SgdsIcon from "../Icon/sgds-icon";
export interface IStepMetaData {
    component: unknown;
    stepHeader: string;
    iconName?: string;
}
/**
 * @summary Steppers are used to inform users which step they are at in a form or a process
 *
 * @event sgds-next-step - Emitted right before the next step is reached. Event is fired when nextStep method is called.
 * @event sgds-previous-step - Emitted right before the previous step is reached. Event is fired when previousStep method is called.
 * @event sgds-last-step - Emitted right before the last step is reached. Event is fired when lastStep method is called.
 * @event sgds-first-step - Emitted on hide after animation has completed. Event is fired when firstStep method is called.
 * @event sgds-arrived - Emitted right after the activeStep has updated its state, when upcoming step has arrived. Call `getMethod()` on this event to get the current step's component.
 * @event sgds-reset - Emitted right before the step is reset to its defaultActiveStep. Event is fired when reset method is called.
 *
 */
export declare class SgdsStepper extends SgdsElement {
    static styles: import("lit").CSSResult[];
    /** @internal */
    static dependencies: {
        "sgds-icon": typeof SgdsIcon;
    };
    /** The metadata of stepper, type `IStepMetaData`, that consist of `stepHeader: string`, `component:unknown`, `iconName:string`. `stepHeader` is the name of the step and `component` is the content that should appear at the each step. `component` is set to `unknown` to allow users to pass in their desired component based on the framework of choice. e.g. pass in your own react/angular/vue component or it can also be a text content.
     * It is required to populate this array to properly render the stepper. By default, stepper markers will render numbers. For icon stepper markers, pass the name of sgds icon via `iconName` key. `iconName` is optional.
     */
    steps: IStepMetaData[];
    /** The current state of active step. Defaults to 0 */
    activeStep: number;
    /** The orientation of stepper. By default, the stepper is of horizontal orientation */
    orientation: StepperOrientation;
    /** When true, the stepper's steps will be clickable */
    clickable: boolean;
    /** @internal Gets or sets the default activeStep used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */
    defaultActiveStep: number;
    /** By default, it returns the corresponding component of the current activeStep as defined in the steps metadata. To get other components, pass in your desired step number as the parameter*/
    getComponent(step?: number): unknown;
    /** Moves the active step forward one step */
    nextStep(): void;
    /** Moves the active step back one step */
    previousStep(): void;
    /** Changes the active step to the last step */
    lastStep(): void;
    /** Changes active step to the first step */
    firstStep(): void;
    /** Resets the Stepper to its initial active step state */
    reset(): void;
    /**@internal */
    _onStepperItemClick(index: number): void;
    /**@internal */
    _handleActiveStepChange(): void;
    /**@internal */
    _handleKeyDown(event: KeyboardEvent, index: number): void;
    render(): import("lit").TemplateResult<1>;
}
export type StepperOrientation = "horizontal" | "vertical";
export default SgdsStepper;
