import { AfterViewInit, ChangeDetectorRef, OnDestroy, OnInit, QueryList } from '@angular/core';
import { RtlService } from '@fundamental-ngx/cdk/utils';
import { Subject } from 'rxjs';
import { MicroProcessFlowFocusableItemDirective } from '../../micro-process-flow-focusable-item.directive';
import { MicroProcessFlowItemComponent } from '../micro-process-flow-item/micro-process-flow-item.component';
import * as i0 from "@angular/core";
export declare class MicroProcessFlowComponent implements OnInit, OnDestroy, AfterViewInit {
    private _cd;
    private _rtl;
    /** Should connector between items be hidden. */
    independentSteps: boolean;
    /** Pagination transition speed in milliseconds */
    transitionSpeed: number;
    /** Pagination transition effect */
    transitionTimingFunction: string;
    /** Micro process flow items. */
    items: QueryList<MicroProcessFlowItemComponent>;
    /** Micro process flow items. */
    focusableItems: QueryList<MicroProcessFlowFocusableItemDirective>;
    /** @hidden */
    private _wrapperContainer;
    /** @hidden */
    private _container;
    /** @hidden */
    private _goNextButton;
    /**
     * Previous items outside the viewport.
     */
    previousItemsCount: number;
    /**
     * Next items outside the viewport.
     */
    nextItemsCount: number;
    /** Indicating whether or not any element is focused */
    canItemsReceiveFocus: Subject<boolean>;
    /** Should show next button. */
    get showNextButton(): boolean;
    /** Should show previous button. */
    get showPreviousButton(): boolean;
    /** @hidden */
    private _isRtl;
    /** @hidden */
    private get _paginationDirection();
    /** @hidden */
    private _subscriptions;
    /** @hidden */
    private _navigationKeys;
    /** @hidden */
    private _actionKeys;
    /** @hidden */
    private _focusedElementIndex;
    /** @hidden */
    constructor(_cd: ChangeDetectorRef, _rtl: RtlService);
    /** @hidden */
    handleKeyboardEvent(event: KeyboardEvent): void;
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngAfterViewInit(): void;
    /** @hidden */
    ngOnDestroy(): void;
    /** Listens on items change and checks if navigation buttons should be visible. */
    listenOnItemsChange(): void;
    /** Scrolls to the next item. */
    goNext(): void;
    /** Scrolls to the previous item. */
    goBack(): void;
    /**
     * Sets last focused element index.
     * @param elm Focused HTML element.
     */
    setFocusedElementIndex(elm: HTMLElement): void;
    /**
     * Navigates to a specific page when the user presses 'Space' or 'Enter' key.
     * @param offset How much items needs to be scrolled relatively to the hidden previous items.
     * @param event The keyboard event.
     */
    onKeypressHandler(offset: number, event: KeyboardEvent): void;
    /**
     * Checks if navigation buttons should be visible depending on the amount of items
     * and current pagination offset.
     */
    private _setNavigationButtons;
    /**
     * Calculate how many items are out of the viewport.
     * @param itemsToDisplay Array of html elements that needs to be shown.
     * @param containerWidth Width of the parent container to calculate amount of items possible to fit.
     */
    private _setNextItemsCount;
    /**
     * @hidden
     * Performs scrolling to the defined element based on the offset argument.
     * @param offset How much items needs to be scrolled relatively to the hidden previous items.
     */
    private _paginate;
    /**
     * @hidden
     * Calculates total width of previously shown items.
     * @returns {Number} total width of previously shown items.
     */
    private _getPreviousItemsWidth;
    /** @hidden */
    private _disableFocusableItems;
    /** @hidden */
    private _setFocusableVisibleItems;
    /** @hidden */
    private _getPreviousItemsCount;
    static ɵfac: i0.ɵɵFactoryDeclaration<MicroProcessFlowComponent, [null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MicroProcessFlowComponent, "fd-micro-process-flow", never, { "independentSteps": { "alias": "independentSteps"; "required": false; }; "transitionSpeed": { "alias": "transitionSpeed"; "required": false; }; "transitionTimingFunction": { "alias": "transitionTimingFunction"; "required": false; }; }, {}, ["items", "focusableItems"], ["fd-micro-process-flow-item"], true, never>;
}
