import { MinMaxType, Coord2DType, EntityEidType, BasicInfoAtomType, TransformAtom2DType, VisibleAtomType, EntityFlagAtomType, Visible2DAtomType, deepPartial, EntityOutlinerAtomType, Tjustification, TscrollPolicy } from '../data-type';
/**
 * @interface PoiType
 * @extends EntityEidType,Partial<BasicInfoAtomType>,Partial<TransformAtom2DType>,Partial<VisibleAtomType>,Partial<EntityFlagAtomType>
 * @param {Partial<PoiEntityAtomType>} poiStyle (optional)
 * @param {deepPartial<Visible2DAtomType>} visible2D (optional)
 */
export interface PoiType extends EntityEidType, Partial<BasicInfoAtomType>, Partial<TransformAtom2DType>, Partial<VisibleAtomType>, Partial<EntityFlagAtomType>, Partial<EntityOutlinerAtomType> {
    poiStyle?: Partial<PoiEntityAtomType>;
    visible2D?: deepPartial<Visible2DAtomType>;
}
/**
 * @interface PoiEntityAtomType
 * @param {boolean} markerVisible
 * @param {string} markerNormalUrl
 * @param {string} markerActivateUrl
 * @param {MinMaxType} markerSize
 * @param {boolean} labelVisible
 * @param {string} labelBgImageUrl
 * @param {MinMaxType} labelBgSize
 * @param {Coord2DType} labelBgOffset
 * @param {Array<string>} labelContent
 * @param {Coord2DType} labelContentOffset
 * @param {boolean} labelTop
 */
export interface PoiEntityAtomType {
    markerVisible: boolean;
    markerNormalUrl: string;
    markerActivateUrl: string;
    markerSize: MinMaxType;
    labelVisible: boolean;
    labelBgImageUrl: string;
    labelBgSize: MinMaxType;
    labelBgOffset: Coord2DType;
    labelContent: Array<string>;
    labelContentOffset: Coord2DType;
    labelTop: boolean;
    scrollSpeed: number;
    textBoxWidth: number;
    labelContentJustification: Tjustification;
    labelContentAutoWrap: boolean;
    scrollPolicy: TscrollPolicy;
}
/**
 * @interface IGenerate
 * @param {Partial<PoiEntityAtomType>} PoiEntityAtom (optional)
 * @param {Partial<BasicInfoAtomType>} BasicInfoAtom (optional)
 * @param {Partial<TransformAtom2DType>} TransformAtom2D (optional)
 * @param {Partial<VisibleAtomType>} VisibleAtom (optional)
 * @param {deepPartial<Visible2DAtomType>} Visible2DAtom (optional)
 * @param {Partial<EntityFlagAtomType>} EntityFlagAtom (optional)
 */
export interface IGenerate {
    PoiEntityAtom?: Partial<PoiEntityAtomType>;
    BasicInfoAtom?: Partial<BasicInfoAtomType>;
    TransformAtom2D?: Partial<TransformAtom2DType>;
    VisibleAtom?: Partial<VisibleAtomType>;
    Visible2DAtom?: deepPartial<Visible2DAtomType>;
    EntityFlagAtom?: Partial<EntityFlagAtomType>;
    EntityOutlinerAtom?: Partial<EntityOutlinerAtomType>;
}
