import { type IGraphicAttribute, type IGraphic, type IGroup } from '@visactor/vrender-core';
import type { IRegion } from '../../region/interface';
import type { IComponent, IComponentOption } from '../interface';
import type { IComponentPluginService, IComponentPlugin } from '../../plugin/components/interface';
import type { IBoundsLike } from '@visactor/vutils';
import type { Datum, ILayoutRect } from '../../typings';
import type { IComponentSpec } from './interface';
import { LayoutModel } from '../../model/layout-model';
import { BaseComponentSpecTransformer } from './base-component-transformer';
import type { IModelSpecInfo } from '../../model/interface';
export declare class BaseComponent<T extends IComponentSpec = IComponentSpec> extends LayoutModel<T> implements IComponent {
    static transformerConstructor: typeof BaseComponentSpecTransformer;
    name: string;
    readonly modelType: string;
    readonly transformerConstructor: any;
    pluginService?: IComponentPluginService;
    static createComponent(specInfo: IModelSpecInfo, options: IComponentOption): IComponent;
    protected _option: IComponentOption;
    protected _regions: IRegion[];
    getRegions(): IRegion[];
    protected _container: IGroup;
    created(): void;
    initLayout(): void;
    protected _getNeedClearVRenderComponents(): IGraphic[];
    getVRenderComponents(): IGraphic<Partial<IGraphicAttribute>>[];
    protected callPlugin(cb: (plugin: IComponentPlugin) => void): void;
    protected getContainer(): IGroup;
    _compareSpec(spec: T, prevSpec: T): {
        change: boolean;
        reMake: boolean;
        reRender: boolean;
        reSize: boolean;
        reCompile: boolean;
    };
    release(): void;
    clear(): void;
    compile(): void;
    compileMarks(group?: IGroup): void;
    reAppendComponents(): void;
    protected _delegateEvent: (component: IGraphic, event: any, type: string, item?: any, datum?: Datum) => void;
    getBoundsInRect(rect: ILayoutRect, fullRect: ILayoutRect): IBoundsLike;
    getDatum(graphic?: IGraphic<Partial<IGraphicAttribute>>): void;
}
