import { Group, Object3D } from 'three';
import { IObject3D, IObject3DEventMap, IObject3DUserData } from '../IObject';
import { IGeometry } from '../IGeometry';
import { IMaterial } from '../IMaterial';
export declare class Group2<TE extends IObject3DEventMap = IObject3DEventMap, TG extends IGeometry | undefined = undefined, TM extends IMaterial | IMaterial[] | undefined = undefined> extends Group<TE> implements IObject3D<TE, TG, TM> {
    assetType: IObject3D['assetType'];
    setDirty: (this: IObject3D, options?: import('../IObject').IObjectSetDirtyOptions, ...args: any[]) => void;
    refreshUi: (this: IObject3D) => void;
    geometry: TG;
    material: TM;
    /**
     * @deprecated use `this` instead
     */
    get modelObject(): this;
    constructor();
    dispose(): void;
    userData: IObject3DUserData;
    traverse: (callback: (object: IObject3D) => void) => void;
    traverseVisible: (callback: (object: IObject3D) => void) => void;
    traverseAncestors: (callback: (object: IObject3D) => void) => void;
    getObjectById: (id: number) => IObject3D | undefined;
    getObjectByName: (name: string) => IObject3D | undefined;
    getObjectByProperty: (name: string, value: string) => IObject3D | undefined;
    parent: IObject3D | null;
    children: IObject3D[];
    ['_sChildren']?: Object3D[];
}
//# sourceMappingURL=../../src/core/object/Group2.d.ts.map