import { EntityEidType, EntityGeometryType, BasicInfoAtomType, TransformAtomType, VisibleAtomType, EntityFlagAtomType, EntityOutlinerAtomType } from '../data-type';
/**
 * @interface ViewshedType
 * @extends EntityEidType,EntityGeometryType,Partial<BasicInfoAtomType>,Partial<TransformAtomType>,Partial<VisibleAtomType>,Partial<EntityFlagAtomType>
 * @param {Partial<ViewShedEntityAtomType>} viewshedStyle (optional)
 */
export interface ViewshedType extends EntityEidType, EntityGeometryType, Partial<BasicInfoAtomType>, Partial<TransformAtomType>, Partial<VisibleAtomType>, Partial<EntityFlagAtomType>, Partial<EntityOutlinerAtomType> {
    viewshedStyle?: Partial<ViewShedEntityAtomType>;
}
/**
 * @interface ViewShedEntityAtomType
 * @param {string} visibleColor
 * @param {string} hiddenColor
 * @param {boolean} outline
 * @param {number} fieldOfView
 * @param {number} radius
 */
export interface ViewShedEntityAtomType {
    visibleColor: string;
    hiddenColor: string;
    outline: boolean;
    fieldOfView: number;
    radius: number;
}
/**
 * @interface IGenerate
 * @param {Partial<ViewShedEntityAtomType>} ViewShedEntityAtom (optional)
 * @param {Partial<BasicInfoAtomType>} BasicInfoAtom (optional)
 * @param {Partial<TransformAtomType>} TransformAtom (optional)
 * @param {Partial<VisibleAtomType>} VisibleAtom (optional)
 * @param {Partial<EntityFlagAtomType>} EntityFlagAtom (optional)
 */
export interface IGenerate {
    ViewShedEntityAtom?: Partial<ViewShedEntityAtomType>;
    BasicInfoAtom?: Partial<BasicInfoAtomType>;
    TransformAtom?: Partial<TransformAtomType>;
    VisibleAtom?: Partial<VisibleAtomType>;
    EntityFlagAtom?: Partial<EntityFlagAtomType>;
    EntityOutlinerAtom?: Partial<EntityOutlinerAtomType>;
}
