import { Observable } from 'rxjs'; import { I18n, I18nString, Keymap } from '@textbus/core'; import { Tool, ToolFactory, ToolFactoryParams } from '../help'; import { Matcher } from '../matcher/_api'; import { Commander } from '../commander'; export interface DropdownViewer { elementRef: HTMLElement; onComplete: Observable; onClose?: Observable; update?(value?: any): void; reset?(): void; } export interface DropdownToolConfig { /** 下拉控件展开后显示的内容 */ viewFactory(i18n: I18n): DropdownViewer; /** 状态查询器 */ matcher?: Matcher; /** 订阅下拉控件操作完成时调用的命令 */ commanderFactory(): Commander; /** 快捷键配置 */ keymap?: Keymap; /** 给当前控件添加一组 css class */ classes?: string[]; /** 给当前控件添加一组 icon css class */ iconClasses?: string[]; /** 当鼠标放在控件上的提示文字 */ tooltip?: I18nString; /** 设置控件显示的文字 */ label?: I18nString; } export declare class DropdownTool implements ToolFactory { private config; private subs; constructor(config: DropdownToolConfig); create(params: ToolFactoryParams, addTool: (tool: Tool) => void): HTMLElement; onDestroy(): void; }