import { IPopperControlOption, PopperControl } from './popperControl';
type BaseOptionItem = {
    value: string;
    text: string;
    [key: string]: string;
};
type NormalOptionItem = BaseOptionItem & {
    icon?: HTMLElement;
};
type ImageOptionItem = BaseOptionItem & {
    img: string;
};
export type ControlOptionItem = ImageOptionItem | NormalOptionItem;
export interface ISelectControlOption extends IPopperControlOption {
    options: ControlOptionItem[];
    defaultValue?: string | string[];
}
export { SelectControl };
export default class SelectControl<O extends ISelectControlOption = ISelectControlOption> extends PopperControl<O> {
    /**
     * 当前选中的值
     * @protected
     */
    protected selectValue: string[];
    /**
     * 选项对应的 DOM 列表
     * @protected
     */
    protected optionDOMList: HTMLElement[];
    setOptions(option: Partial<O>): void;
    onAdd(): HTMLElement;
    getSelectValue(): string | string[];
    setSelectValue(value: string | string[], emitEvent?: boolean): void;
    /**
     * 是否为多选
     * @protected
     */
    protected getIsMultiple(): boolean;
    protected getPopperContent(options: ControlOptionItem[]): HTMLElement;
    protected createNormalOption: (option: NormalOptionItem) => HTMLElement;
    protected createImageOption(option: ImageOptionItem): HTMLElement;
    protected createCheckbox(isSelect: boolean): HTMLElement;
    protected onItemClick: (item: ControlOptionItem) => void;
    protected isImageOptions(): boolean;
    protected transSelectValue(value: string | string[]): string[];
}
