import { ComponentOptions } from '../types';
export declare abstract class Component<O extends ComponentOptions = ComponentOptions> {
    /**
     * Component 的 schema 配置
     */
    options: O;
    protected container: HTMLElement;
    protected destroyed: boolean;
    constructor(options: O);
    /**
     * 获取默认配置
     */
    protected getDefaultOptions(): Partial<ComponentOptions>;
    /**
     * 获取 container
     */
    getContainer(): HTMLElement;
    /**
     * 获取组件的父容器
     */
    protected getParentContainer(): HTMLElement | undefined;
    /**
     * 初始化 container
     */
    protected initContainer(): HTMLElement;
    /**
     * 初始化 DOM
     */
    protected abstract initDom(): any;
    /**
     * 初始化 visible
     */
    protected initVisible(): void;
    /**
     * 初始化事件
     */
    protected abstract initEvent(): any;
    /**
     * 清理事件
     */
    protected abstract removeEvent(): any;
    /**
     * 初始 capture
     */
    protected initCapture(): void;
    /**
     * 绘制组件
     */
    abstract render(): any;
    /**
     * 显示
     */
    abstract show(): any;
    /**
     * 隐藏
     */
    abstract hide(): any;
    /**
     * 更新组件
     */
    update(options: Partial<O>): void;
    protected updateInner(options: Partial<O>): void;
    /**
     * 更新组件后
     */
    protected afterUpdate(options: Partial<O>): void;
    /**
     * 是否允许捕捉事件
     */
    setCapture(capture: any): void;
    /**
     * 应用所有的样式
     */
    protected applyStyles(): void;
    /**
     * 应用样式到 DOM
     */
    protected applyChildrenStyles(element: any, styles: any): void;
    /**
     * 应用到单个 DOM
     */
    protected applyStyle(cssName: any, dom: any): void;
    /**
     * 创建 DOM
     */
    protected createDom(str?: string): HTMLElement;
    /**
     * 清理 DOM
     */
    protected removeDom(): void;
    destroy(): void;
}
