import React, { type ReactElement, type MouseEvent, type ReactNode } from 'react';
import PropTypes from 'prop-types';
import Menu from '../menu';
import Input from '../input';
import DataStore from './data-store';
import { getValueDataSource } from './util';
import type { BaseProps, DataSourceItem, NormalizedObjectItem, ObjectItem, VisibleChangeType } from './types';
export interface BaseState {
dataStore: DataStore;
value?: DataSourceItem | DataSourceItem[];
searchValue?: string;
visible?: boolean;
dataSource: NormalizedObjectItem[];
width: number;
highlightKey?: string | null;
srReader?: ReactNode;
}
export default class Base
extends React.Component
{
static propTypes: {
prefix: PropTypes.Requireable;
size: PropTypes.Requireable;
value: PropTypes.Requireable;
defaultValue: PropTypes.Requireable;
placeholder: PropTypes.Requireable;
autoWidth: PropTypes.Requireable;
label: PropTypes.Requireable;
hasClear: PropTypes.Requireable;
state: PropTypes.Requireable;
readOnly: PropTypes.Requireable;
disabled: PropTypes.Requireable;
visible: PropTypes.Requireable;
defaultVisible: PropTypes.Requireable;
onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
popupContainer: PropTypes.Requireable;
popupClassName: PropTypes.Requireable;
popupStyle: PropTypes.Requireable