/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ICustomElementFoundation } from '@tylertech/forge-core';
import { IStepperAdapter } from './stepper-adapter';
import { IStepConfiguration, StepperLayoutAlign, StepperLayoutMode } from './stepper-constants';
export interface IStepperFoundation extends ICustomElementFoundation {
    steps: IStepConfiguration[];
    selectedIndex: number;
    linear: boolean;
    alternative: boolean;
    layoutMode: StepperLayoutMode;
    layoutAlign: StepperLayoutAlign;
}
export declare class StepperFoundation implements IStepperFoundation {
    private _adapter;
    private _steps;
    private _selectedIndex;
    private _linear;
    private _alternative;
    private _layoutMode;
    private _layoutAlign;
    private _initialize;
    private _disabled;
    private _vertical;
    private _clickListener;
    private _keyListener;
    private _slotChangeListener;
    private _stepFocusListener;
    private _stepBlurListener;
    private _stepExpandedContentFocusInListener;
    private _stepExpandedContentFocusOutListener;
    constructor(_adapter: IStepperAdapter);
    initialize(): void;
    disconnect(): void;
    /** The step configurations. */
    get steps(): IStepConfiguration[];
    set steps(value: IStepConfiguration[]);
    /** The active step index. */
    get selectedIndex(): number;
    set selectedIndex(value: number);
    /** Whether the stepper is linear or non-linear. */
    get linear(): boolean;
    set linear(value: boolean);
    /** Whether the stepper uses the default or alternative label layout mode. */
    get alternative(): boolean;
    set alternative(value: boolean);
    /** The layout mode of the stepper. */
    get layoutMode(): StepperLayoutMode;
    set layoutMode(value: StepperLayoutMode);
    /** The layout alignment of the stepper. */
    get layoutAlign(): StepperLayoutAlign;
    set layoutAlign(value: StepperLayoutAlign);
    get disabled(): boolean;
    set disabled(value: boolean);
    get vertical(): boolean;
    set vertical(value: boolean);
    private _applyVertical;
    private _applyDisabled;
    private _applySelectedIndex;
    private _handleClick;
    private _renderConfiguration;
    private _onKeydown;
    private _moveFocusTo;
    private _getKeyFromEvent;
    private _determineMoveTarget;
    private _determineVerticalMoveTarget;
    private _onSlotChange;
    private _onStepExpandedContentFocusIn;
    private _onStepExpandedContentFocusOut;
    private _onStepFocus;
    private _onStepBlur;
    private _patchBrowser;
}
