import type { Maybe } from '../typings';
import type { IGroupMarkSpec } from '../typings/visual';
import { BaseMark } from './base/base-mark';
import { DiffState, type IGroupMark, type IMark, type IMarkGraphic, type MarkType } from './interface';
import { MarkTypeEnum } from './interface/type';
import { type IMarkCompileOption } from '../compile/mark';
import type { IGroup, IGroupGraphicAttribute } from '@visactor/vrender-core';
export declare class GroupMark extends BaseMark<IGroupMarkSpec> implements IGroupMark {
    static readonly type = MarkTypeEnum.group;
    readonly type = MarkTypeEnum.group;
    protected _marks: IMark[];
    getMarks(): IMark[];
    protected _diffState: DiffState;
    protected _product: Maybe<IGroup>;
    getProduct: () => Maybe<IGroup>;
    protected isMarkExist(mark: IMark): boolean;
    addMark(mark: IMark): boolean;
    removeMark(mark: IMark): boolean;
    getMarkInType(type: MarkType): IMark[];
    getMarkInId(id: number): IMark;
    getMarkInUserId(id: string | number): IMark;
    getMarkInName(name: string): IMark[];
    protected _compileProduct(option?: IMarkCompileOption): void;
    protected _getAttrsFromConfig(attrs?: IGroupGraphicAttribute): IGroupGraphicAttribute;
    getGraphics(): IMarkGraphic[];
    renderInner(): void;
    clearExitGraphics(): void;
    render(): void;
    release(): void;
}
export declare const registerGroupMark: () => void;
