import { EventHandler } from './types'; /** * Base widget: mount container, event bus, destroy. * Subclasses implement render() / update(). * @internal */ export declare abstract class BaseWidget { protected container: HTMLElement; protected root: HTMLElement | null; private events; constructor(container: string | HTMLElement); /** * 注册事件监听。 * 子类会派发各自的事件(如 load、select、suggest 等),通过 on 监听后可在回调中拿到 payload。 * @param event 事件名,由具体组件定义 * @param handler 回调函数,参数为组件派发时传入的 payload * @returns this,支持链式调用 */ on(event: string, handler: EventHandler): this; /** * 移除事件监听。 * 不传 handler 时移除该事件名下的所有监听;传入 handler 时只移除该回调。 * @param event 事件名 * @param handler 可选,要移除的回调;不传则移除该事件的全部监听 * @returns this,支持链式调用 */ off(event: string, handler?: EventHandler): this; destroy(): void; /** Get or create root node */ protected getRoot(): HTMLElement; protected emit(event: string, ...args: unknown[]): void; /** Override in subclass to build DOM */ protected abstract render(): void; }