import { EventEmitter } from '../../stencil-public-runtime';
import { HTMLStencilElement } from '../../stencil-public-runtime';
import { BalBreakpointObserver, BalBreakpoints } from '../../utils/breakpoints';
import { LogInstance, Loggable } from '../../utils/log';
import { BalMutationObserver } from '../../utils/mutation';
import { BalStepOption } from './bal-step.type';
export declare class Steps implements Loggable, BalMutationObserver, BalBreakpointObserver {
    el: HTMLStencilElement;
    private stepsId;
    store: BalStepOption[];
    isMobile: boolean;
    log: LogInstance;
    createLogger(log: LogInstance): void;
    /**
     * PUBLIC PROPERTY API
     * ------------------------------------------------------
     */
    /**
     * Steps can be passed as a property or through HTML markup.
     */
    options: BalStepOption[];
    protected optionChanged(): Promise<void>;
    /**
     * If `true` the tabs or steps can be clicked.
     */
    clickable: boolean;
    /**
     * Defines the color of the steps so it can be placed on colored backgrounds
     */
    color: BalProps.BalStepsColor;
    /**
     * Set the amount of time, in milliseconds, to wait to trigger the `balChange` event after each keystroke. This also impacts form bindings such as `ngModel` or `v-model`.
     */
    debounce: number;
    protected debounceChanged(): void;
    /**
     * Value of the current active step
     */
    value?: string;
    protected valueChanged(newValue?: string, oldValue?: string): Promise<void>;
    /**
     * Emitted when the changes has finished.
     */
    balChange: EventEmitter<BalEvents.BalTabsChangeDetail>;
    /**
     * LIFECYCLE
     * ------------------------------------------------------
     */
    connectedCallback(): void;
    componentDidLoad(): void;
    /**
     * LISTENERS
     * ------------------------------------------------------
     */
    mutationObserverActive: boolean;
    mutationListener(): void;
    breakpointListener(breakpoints: BalBreakpoints): void;
    swiperOnChange(index: number): void;
    /**
     * PUBLIC METHODS
     * ------------------------------------------------------
     */
    /**
     * Go to tab with the given value
     */
    select(step: BalStepOption): Promise<void>;
    /**
     * Find the options properties by its value
     */
    getOptionByValue(value: string): Promise<BalStepOption>;
    /**
     * PRIVATE METHODS
     * ------------------------------------------------------
     */
    private get items();
    private getStepOptions;
    private updateStore;
    private setActiveItem;
    private setActiveContent;
    private isActive;
    /**
     * EVENT BINDING
     * ------------------------------------------------------
     */
    private onOptionChange;
    private onSelectTab;
    /**
     * RENDER
     * ------------------------------------------------------
     */
    render(): any;
}
