import type { FederatedPointerEvent, IGroupGraphicAttribute, ISetAttributeContext } from '@visactor/vrender-core'; import { Group } from '@visactor/vrender-core/graphic/group'; import { type Dict } from '@visactor/vutils'; import type { ComponentOptions } from '../interface'; export declare abstract class AbstractComponent extends Group { attribute: Partial; protected mode?: '2d' | '3d'; protected skipDefault?: boolean; protected _skipRenderAttributes: string[]; constructor(attributes: T, options?: ComponentOptions); setAttribute(key: string, value: any, forceUpdateTag?: boolean | undefined, context?: ISetAttributeContext): void; setAttributes(params: Partial, forceUpdateTag?: boolean | undefined, context?: ISetAttributeContext): void; _setAttributes(params: Partial, forceUpdateTag?: boolean | undefined): void; protected _mergeAttributes(params: Partial, keys?: (keyof T)[]): void; protected bindEvents(): void; protected abstract render(): void; protected _getNodeId(id: string): string; protected _dispatchEvent(eventName: string, details?: Dict): void; protected eventPosToStagePos(e: FederatedPointerEvent): { x: number; y: number; }; }