import { ViewportRuler } from '@angular/cdk/scrolling';
import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { FdDropEvent, RtlService } from '@fundamental-ngx/cdk/utils';
import { ProductSwitchItem } from './product-switch.item';
import * as i0 from "@angular/core";
export declare class ProductSwitchBodyComponent implements OnInit, OnDestroy {
    private _viewportRuler;
    private readonly _rtlService;
    private readonly _cdr;
    /** Defines if drag and drop functionality should be included in product switch*/
    dragAndDropEnabled: boolean;
    /** The product switch's product items. */
    products: ProductSwitchItem[];
    /** Defines if the product switcher should be displayed in list mode, no matter what is the size of window */
    forceListMode: boolean;
    /** Event thrown on products array change */
    readonly productsChange: EventEmitter<any[]>;
    /** Event emitted on product click */
    readonly itemClicked: EventEmitter<void>;
    /** @hidden */
    protected readonly FD_DEFAULT_ICON_FONT_FAMILY = "SAP-icons";
    /** @hidden */
    private _listMode;
    /** @hidden */
    private _subscriptions;
    /** @hidden */
    constructor(_viewportRuler: ViewportRuler, _rtlService: RtlService, _cdr: ChangeDetectorRef);
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngOnDestroy(): void;
    /** @hidden */
    _itemClick(item: ProductSwitchItem, event: MouseEvent): void;
    /** Method called on products change */
    _productSwitchItemsChangeHandle(dropEvent: FdDropEvent<ProductSwitchItem>): void;
    /** @hidden */
    _keyDownHandle(event: KeyboardEvent): void;
    /** @hidden */
    _isSmallMode(): boolean;
    /** @hidden */
    _isListMode(): boolean;
    /** @hidden */
    private _checkSize;
    /** @hidden */
    private _handleNoListKeydown;
    /** @hidden */
    private _handleNoListMoreThanSeven;
    /** @hidden */
    private _handleNoListLessThanSeven;
    /** @hidden */
    private _handleListArrowUpDown;
    static ɵfac: i0.ɵɵFactoryDeclaration<ProductSwitchBodyComponent, [null, { optional: true; }, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ProductSwitchBodyComponent, "fd-product-switch-body", never, { "dragAndDropEnabled": { "alias": "dragAndDropEnabled"; "required": false; }; "products": { "alias": "products"; "required": false; }; "forceListMode": { "alias": "forceListMode"; "required": false; }; }, { "productsChange": "productsChange"; "itemClicked": "itemClicked"; }, never, never, true, never>;
}
