import { Direction } from '@angular/cdk/bidi';
import { AfterContentInit, AfterViewChecked, AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, QueryList, Renderer2, SimpleChanges } from '@angular/core';
import { CarouselItemComponent } from './carousel-item/carousel-item.component';
import { CarouselService } from './carousel.service';
import { FdCarouselResourceStrings } from './i18n/carousel-resources';
import * as i0 from "@angular/core";
export type PageIndicatorsOrientation = 'bottom' | 'top';
export type CarouselBackgroundOptions = 'translucent' | 'transparent' | 'solid';
export declare enum SlideDirection {
    None = 0,
    NEXT = 1,
    PREVIOUS = 2
}
export interface FittingSlidesAndWidth {
    width: number;
    slides: number;
}
declare class CarouselActiveSlides {
    readonly activeItems: CarouselItemComponent[];
    readonly slideDirection: string;
    constructor(activeItems: CarouselItemComponent[], slideDirection: string);
}
export declare class CarouselComponent implements AfterContentInit, AfterViewInit, AfterViewChecked, OnChanges {
    private readonly _elementRef;
    private readonly _renderer;
    private readonly _changeDetectorRef;
    private readonly _carouselService;
    private readonly _zone;
    /** ID for the Carousel. */
    id: string;
    /** Sets aria-label attribute for carousel */
    ariaLabel: null;
    /** Sets aria-labelledby attribute for carousel */
    ariaLabelledBy: string;
    /** Sets aria-describedby attribute for carousel */
    ariaDescribedBy: string;
    /** Sets position of page indicator container. Default position is bottom. */
    pageIndicatorsOrientation: PageIndicatorsOrientation;
    /** Height for carousel container */
    height: string;
    /** Width for carousel container */
    width: string;
    /** If carousel is in circular loop */
    loop: boolean;
    /** Shows/hides optional navigation button */
    navigation: boolean;
    /** Show navigation button in page indicator container or inside content. Default is page indicator container on true value */
    navigatorInPageIndicator: boolean;
    /** Convert to Numeric page indicator */
    numericIndicator: boolean;
    /** Shows/hides optional page indicator container  */
    pageIndicatorContainer: boolean;
    /** Shows/hides optional page indicator */
    pageIndicator: boolean;
    /**
     * An accessor that sets the resource strings.
     * By default it uses EN resources.
     */
    set resourceStrings(value: FdCarouselResourceStrings);
    /**
     * An accessor that returns the resource strings.
     */
    get resourceStrings(): FdCarouselResourceStrings;
    /** Sets sliding duration in millie seconds. Default is 150 */
    slideTransitionDuration: number;
    /** Is swipe enabled */
    swipeEnabled: boolean;
    /** Is carousel is vertical. Default value is false. */
    vertical: boolean;
    /** Whether to hide top border of the Pagination Container. */
    noPaginationContainerBorder: boolean;
    /** Background configuration for the Content container. */
    contentBackground: CarouselBackgroundOptions;
    /** Background configuration for the Pagination container */
    pageIndicatorBackground: CarouselBackgroundOptions;
    /** Number of items to be visible at a time */
    set visibleSlidesCount(value: number | 'auto');
    get visibleSlidesCount(): number | 'auto';
    /** An event that is emitted after a slide transition has happened */
    readonly slideChange: EventEmitter<CarouselActiveSlides>;
    /** @hidden */
    slides: QueryList<CarouselItemComponent>;
    /** @hidden */
    slideContainer: ElementRef;
    /** Carousel container element. */
    carouselContainer: ElementRef;
    /** @hidden Start index of currently active items */
    currentActiveSlidesStartIndex: number;
    /** @hidden End index of currently active items */
    currentActiveSlidesEndIndex: number;
    /** @hidden an array of id(s) of currently active item(s) */
    currentActiveSlidesIds: string[];
    /** @hidden the total number of slides in the carousel */
    totalSlides: number;
    /** @hidden handles rtl service */
    readonly _dir$: import("@angular/core").Signal<Direction>;
    /** @hidden Make left navigation button disabled */
    leftButtonDisabled: boolean;
    /** @hidden Make right navigation button disabled */
    rightButtonDisabled: boolean;
    /** @hidden Fake array for counting number of page indicator */
    pageIndicatorsCountArray: number[];
    /** @hidden */
    _slidesWrapperSize: number;
    /** @hidden A string containing the id(s) of the active item(s) */
    ariaActivedescendant: string;
    /** @hidden */
    get _contentSizePx(): string;
    /** @hidden */
    private _visibleSlidesCount;
    /** @hidden */
    private _visibleSlidesNumericCount;
    /** @hidden */
    private _resourceStrings;
    /** @hidden */
    private _config;
    /** @hidden */
    private _slidesCopy;
    /** @hidden */
    private _previousVisibleSlidesCount;
    /** @hidden */
    private _slideSwiped;
    /** @hidden */
    private readonly _destroyRef;
    /** @hidden */
    private readonly _rtlService;
    /** @hidden */
    private readonly _rtl$;
    /** @hidden */
    constructor(_elementRef: ElementRef<HTMLElement>, _renderer: Renderer2, _changeDetectorRef: ChangeDetectorRef, _carouselService: CarouselService, _zone: NgZone);
    /** @hidden */
    handleKeyboardEvent(event: KeyboardEvent): void;
    /** @hidden */
    ngOnChanges(changes: SimpleChanges): void;
    /** @hidden */
    ngAfterContentInit(): void;
    /** @hidden */
    ngAfterViewInit(): void;
    /** @hidden */
    ngAfterViewChecked(): void;
    /** @hidden */
    get _showNavigationButtonInPageIndicatorContainer(): boolean;
    /** @hidden */
    get _showNavigationButtonInContent(): boolean;
    /** @hidden */
    get _showPageIndicatorContainer(): boolean;
    /** @hidden */
    get getPageIndicatorLabel(): string;
    /** @hidden */
    get screenReaderLabel(): string;
    /** @hidden */
    _focus(): void;
    /** Transitions to the previous slide in the carousel. */
    previous(): void;
    /** Transitions to the next slide in the carousel. */
    next(): void;
    /** @hidden Subscribe to carousel service events */
    private _subscribeServiceEvents;
    /**
     * @hidden Prevent native focus flow related to button, if button will be disable on focus state.
     * It works only if carousel is not in circular loop.
     */
    private _preventDefaultBtnFocus;
    /** @hidden Adjust position of active item, based on slide direction */
    private _adjustActiveItemPosition;
    /** @hidden Handles navigation button visibility */
    private _buttonVisibility;
    /** @hidden Handle when slide is added or removed */
    private _onSlideUpdates;
    /** @hidden Initialize carousel with visible items */
    private _initializeCarousel;
    /** @hidden */
    private _goToFirstItem;
    /** @hidden Initialize config for Carousel service */
    private _initializeServiceConfig;
    /**
     * @hidden Returns the slide swapping steps
     */
    private _getStepTaken;
    /** @hidden Handles notification on visible slide change */
    private _notifySlideChange;
    /** @hidden Manages visibility for slides. Useful in managing tab order */
    private _manageSlideVisibility;
    /** @hidden On Swiping of slide, manage page indicator */
    private _onSlideSwipe;
    /**
     * @hidden Making slides visible when slides are dragged. Otherwise, it looses the effect.
     */
    private _onSlideDrag;
    /**
     * @hidden
     * Resizes inner carousel container to fit all items in the viewport and hide those which are not fully in it.
     */
    private _resizeContentContainer;
    /**
     * @hidden
     * Calculates how many slides can be shown within current carousel viewport.
     * @returns Object containing fitting slides count and total width of those slides.
     */
    private _getFittingSlidesAndWidth;
    /** @hidden */
    private _getVisibleSlidesCount;
    static ɵfac: i0.ɵɵFactoryDeclaration<CarouselComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CarouselComponent, "fd-carousel", never, { "id": { "alias": "id"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; }; "pageIndicatorsOrientation": { "alias": "pageIndicatorsOrientation"; "required": false; }; "height": { "alias": "height"; "required": false; }; "width": { "alias": "width"; "required": false; }; "loop": { "alias": "loop"; "required": false; }; "navigation": { "alias": "navigation"; "required": false; }; "navigatorInPageIndicator": { "alias": "navigatorInPageIndicator"; "required": false; }; "numericIndicator": { "alias": "numericIndicator"; "required": false; }; "pageIndicatorContainer": { "alias": "pageIndicatorContainer"; "required": false; }; "pageIndicator": { "alias": "pageIndicator"; "required": false; }; "resourceStrings": { "alias": "resourceStrings"; "required": false; }; "slideTransitionDuration": { "alias": "slideTransitionDuration"; "required": false; }; "swipeEnabled": { "alias": "swipeEnabled"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; }; "noPaginationContainerBorder": { "alias": "noPaginationContainerBorder"; "required": false; }; "contentBackground": { "alias": "contentBackground"; "required": false; }; "pageIndicatorBackground": { "alias": "pageIndicatorBackground"; "required": false; }; "visibleSlidesCount": { "alias": "visibleSlidesCount"; "required": false; }; }, { "slideChange": "slideChange"; }, ["slides"], ["*"], true, never>;
}
export {};
