import { EntityEidType, BasicInfoAtomType, IPolygon2DAtom, VisibleAtomType, EntityFlagAtomType, EntityOutlinerAtomType } from '../data-type';
/**
 * @interface CirclePolygon2DAtomType
 * @param {Array<number>} center
 * @param {number} radius
 */
export interface CirclePolygon2DAtomType {
    center: Array<number>;
    radius: number;
}
/**
 * @interface RangeEntityAtomType
 * @param {string} shape
 * @param {string} type
 * @param {string} fillAreaType
 * @param {number} height
 * @param {number} strokeWeight
 * @param {string} color
 */
export interface RangeEntityAtomType {
    shape: string;
    type: string;
    fillAreaType: string;
    height: number;
    strokeWeight: number;
    color: string;
}
/**
 * @interface RangeType
 * @extends EntityEidType,Partial<BasicInfoAtomType>,Partial<VisibleAtomType>,Partial<EntityFlagAtomType>
 * @param {Partial<RangeEntityAtomType>} rangeStyle (optional)
 * @param {Partial<CirclePolygon2DAtomType>} circlePolygon2D (optional)
 * @param {Partial<IPolygon2DAtom>} polygon2D (optional)
 */
export interface RangeType extends EntityEidType, Partial<BasicInfoAtomType>, Partial<VisibleAtomType>, Partial<EntityFlagAtomType>, Partial<EntityOutlinerAtomType> {
    rangeStyle?: Partial<RangeEntityAtomType>;
    circlePolygon2D?: Partial<CirclePolygon2DAtomType>;
    polygon2D?: Partial<IPolygon2DAtom>;
}
/**
 * @interface IGenerate
 * @param {Partial<RangeEntityAtomType>} RangeEntityAtom (optional)
 * @param {Partial<CirclePolygon2DAtomType>} CirclePolygon2DAtom (optional)
 * @param {Partial<BasicInfoAtomType>} BasicInfoAtom (optional)
 * @param {Partial<IPolygon2DAtom>} Polygon2DAtom (optional)
 * @param {Partial<VisibleAtomType>} VisibleAtom (optional)
 * @param {Partial<EntityFlagAtomType>} EntityFlagAtom (optional)
 */
export interface IGenerate {
    RangeEntityAtom?: Partial<RangeEntityAtomType>;
    CirclePolygon2DAtom?: Partial<CirclePolygon2DAtomType>;
    BasicInfoAtom?: Partial<BasicInfoAtomType>;
    Polygon2DAtom?: Partial<IPolygon2DAtom>;
    VisibleAtom?: Partial<VisibleAtomType>;
    EntityFlagAtom?: Partial<EntityFlagAtomType>;
    EntityOutlinerAtom?: Partial<EntityOutlinerAtomType>;
}
