import * as React from 'react';
import { OptionsType as SelectOptionsType, RenderNode, OnActiveValue } from './interface';
import { RawValueType, FlattenOptionsType, ExpandKey, DefaultExpandKey } from './interface/generator';
import { OptionProps } from './Option';
export interface OptionListProps<OptionsType extends object[]> {
    prefixCls: string;
    id: string;
    options: OptionsType;
    flattenOptions: FlattenOptionsType<OptionsType>;
    height: number;
    itemHeight: number;
    values: Set<RawValueType>;
    multiple: boolean;
    open: boolean;
    defaultActiveFirstOption?: boolean;
    notFoundContent?: React.ReactNode;
    mode?: string;
    menuItemSelectedIcon?: RenderNode;
    childrenAsData?: boolean;
    searchValue?: string;
    virtual?: boolean;
    keepExpand?: boolean;
    defaultExpandGroupKey?: DefaultExpandKey;
    showTitle?: boolean;
    showSelectAll?: boolean;
    optionRender?: (label: React.ReactNode, option?: OptionProps) => React.ReactNode;
    renderEmpty?: (componentName?: string, des?: string | undefined) => React.ReactNode;
    onSelect: (value: RawValueType, option: {
        selected: boolean;
    }) => void;
    triggerChange: (newRawValues: RawValueType[]) => void;
    onToggleOpen: (open?: boolean) => void;
    /** Tell Select that some value is now active to make accessibility work */
    onActiveValue: OnActiveValue;
    onScroll: React.UIEventHandler<HTMLDivElement>;
    /** Tell Select that mouse enter the popup to force re-render */
    onMouseEnter?: React.MouseEventHandler;
    onExpandChange?: (key: ExpandKey) => void;
    setInnerOpen?: (value: boolean) => void;
    cleanSearchValue?: () => void;
}
export interface RefOptionListProps {
    onKeyDown: React.KeyboardEventHandler;
    onKeyUp: React.KeyboardEventHandler;
    scrollTo?: (index: number) => void;
}
declare const RefOptionList: React.ForwardRefExoticComponent<OptionListProps<SelectOptionsType> & React.RefAttributes<RefOptionListProps>>;
export default RefOptionList;
