import { EntityEidType, VisibleAtomType, BasicInfoAtomType, TransformAtomType, CoordType, RotatorType, ScaleType, EntityFlagAtomType, EntityOutlinerAtomType } from '../data-type';
/**
 * @interface GroupType
 * @extends EntityEidType,Partial<BasicInfoAtomType>,Partial<TransformAtomType>,Partial<VisibleAtomType>,Partial<EntityFlagAtomType>
 * @param {Array<any>} children (optional)
 */
export interface GroupType extends EntityEidType, Partial<BasicInfoAtomType>, Partial<TransformAtomType>, Partial<VisibleAtomType>, Partial<EntityFlagAtomType>, Partial<EntityOutlinerAtomType> {
    children?: Array<any>;
}
/**
 * @interface EntityChildrenAtomType
 * @param {Array<string>} childrenEids
 */
export interface EntityChildrenAtomType {
    childrenEids: Array<string>;
}
/**
 * @interface WdpGroupTransformAtomType
 * @param {CoordType} location
 * @param {RotatorType} rotator
 * @param {ScaleType} scale3d
 */
export interface WdpGroupTransformAtomType {
    location: CoordType;
    rotator: RotatorType;
    scale3d: ScaleType;
    pivotOffset: Array<number>;
}
/**
 * @interface IGenerate
 * @param {Partial<EntityChildrenAtomType>} EntityChildrenAtom (optional)
 * @param {Partial<BasicInfoAtomType>} BasicInfoAtom (optional)
 * @param {Partial<TransformAtomType>} WdpGroupTransformAtom (optional)
 * @param {Partial<VisibleAtomType>} WdpGroupVisibleAtom (optional)
 * @param {Partial<EntityFlagAtomType>} EntityFlagAtom (optional)
 */
export interface IGenerate {
    EntityChildrenAtom?: Partial<EntityChildrenAtomType>;
    BasicInfoAtom?: Partial<BasicInfoAtomType>;
    WdpGroupTransformAtom?: Partial<TransformAtomType>;
    WdpGroupVisibleAtom?: Partial<VisibleAtomType>;
    EntityFlagAtom?: Partial<EntityFlagAtomType>;
    EntityOutlinerAtom?: Partial<EntityOutlinerAtomType>;
}
