import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
import { I18nInterface, I18nService } from 'ng-devui/i18n';
import { Subscription } from 'rxjs';
import { ToggleMenuListItem } from './toggle-menu.type';
import * as i0 from "@angular/core";
export declare class ToggleMenuListComponent implements OnInit, OnChanges, OnDestroy {
    private changeDetectorRef;
    private i18n;
    /**
     * 【必选】下拉选项资源，支持Array<string>, Array<{key: value}>
     */
    options: Array<ToggleMenuListItem>;
    /**
     * 【当传入资源（options）类型为Array<{key: value}，必选】针对传入资源options的每项对应字段做禁用操作的key
     */
    optionDisabledKey: string;
    /**
     * 【当传入资源（options）类型为Array<{key: value}，必选】针对传入资源options的每项对应字段禁止变更的key
     */
    optionImmutableKey: string;
    /**
     * 【当传入资源（options）类型为Array<{key: value}，可选】如使用分组需设置
     */
    optionGroupKey: string;
    /**
     * 【可选】下拉选框尺寸
     */
    size: '' | 'sm' | 'lg';
    keyword: string;
    /**
     * 【可选】是否在搜索过滤状态中
     */
    isFiltering: boolean;
    /**
     *  【可选】启用数据懒加载，默认不启用
     */
    enableLazyLoad: boolean;
    /**
     * 【可选】是否虚拟滚动
     */
    virtualScroll: boolean;
    /**
     * 【必选】下拉列表单项模板
     */
    listItemTemplate: TemplateRef<any>;
    /**
     * 【可选】自定义 loading 模板
     */
    loadingTemplateRef: TemplateRef<any>;
    /**
     * 【可选】配置无数据展示
     */
    noResultItemTemplate: TemplateRef<any>;
    /**
     * 【可选】支持自定义区域显示内容
     */
    customViewTemplate: TemplateRef<any>;
    /**
     * customViewTemplate的方向，支持下方和右方
     */
    customViewDirection: 'top' | 'bottom' | 'right' | 'left';
    /**
     * 【可选】模板高度
     */
    templateItemSize: number;
    /**
     * 【可选】下拉菜单高度，建议使用px作为高度单位
     */
    set scrollHeight(value: string);
    get scrollHeight(): string;
    selectIndex: number;
    /**
     * 【可选】是否允许单选状态下无选中值时高亮某项
     */
    hasSelectIndex: boolean;
    /**
     * 【可选】是否支持多选
     */
    multiple: boolean;
    multiItems: any[];
    value: ToggleMenuListItem | Array<ToggleMenuListItem>;
    /**
     * 【可选】是否支持全选
     */
    isSelectAll: boolean;
    /**
     * 【可选】配置多选的时候是否维持原数组排序还是用户选择的顺序排序，默认是用户顺序
     */
    keepMultipleOrder: 'origin' | 'user-select';
    eventHandle: any;
    closeScope: 'all' | 'blank' | 'none';
    /**
     * select下拉toggle事件，值为true或false
     */
    toggleChange: EventEmitter<any>;
    valueChange: EventEmitter<any>;
    loadMore: EventEmitter<any>;
    dropdownUl: ElementRef;
    virtualScrollViewport: CdkVirtualScrollViewport;
    get realVirtualScrollItemSize(): any;
    _scrollHeight: string;
    i18nCommonText: I18nInterface['common'];
    i18nSubscription: Subscription;
    availableOptions: any[];
    activeIndex: number;
    allChecked: boolean;
    halfChecked: boolean;
    showLoading: boolean;
    scrollHeightNum: number;
    minBuffer: number;
    maxBuffer: number;
    virtualScrollViewportSizeMightChange: boolean;
    virtualScrollItemSize: any;
    constructor(changeDetectorRef: ChangeDetectorRef, i18n: I18nService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    setI18nText(): void;
    setAvailableOptions(): void;
    setChecked(selectedItem: any): void;
    selectAll(): void;
    trackByFn(index: any, item: any): any;
    onEscKeyup(event?: Event): void;
    handleKeyUpEvent(event?: Event): void;
    handleKeyDownEvent(event?: Event): void;
    handleKeyEnterEvent(event?: Event): void;
    scrollToActive(): void;
    resetIndex(resetSelectIndex?: boolean): void;
    choose: ({ option, index, event }: {
        option: any;
        index: any;
        event: any;
    }) => void;
    showSelectAll(): boolean;
    getVirtualScrollHeight(len: any, size: any): string;
    loadMoreEvent(event: any): void;
    loadStart(): void;
    loadFinish(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToggleMenuListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ToggleMenuListComponent, "d-toggle-menu-list", never, { "options": "options"; "optionDisabledKey": "optionDisabledKey"; "optionImmutableKey": "optionImmutableKey"; "optionGroupKey": "optionGroupKey"; "size": "size"; "keyword": "keyword"; "isFiltering": "isFiltering"; "enableLazyLoad": "enableLazyLoad"; "virtualScroll": "virtualScroll"; "listItemTemplate": "listItemTemplate"; "loadingTemplateRef": "loadingTemplateRef"; "noResultItemTemplate": "noResultItemTemplate"; "customViewTemplate": "customViewTemplate"; "customViewDirection": "customViewDirection"; "templateItemSize": "templateItemSize"; "scrollHeight": "scrollHeight"; "selectIndex": "selectIndex"; "hasSelectIndex": "hasSelectIndex"; "multiple": "multiple"; "multiItems": "multiItems"; "value": "value"; "isSelectAll": "isSelectAll"; "keepMultipleOrder": "keepMultipleOrder"; "eventHandle": "eventHandle"; "closeScope": "closeScope"; }, { "toggleChange": "toggleChange"; "valueChange": "valueChange"; "loadMore": "loadMore"; }, never, ["*"], false>;
}
